java - Java AWT 的不正确对齐错误。无法移动我的标签

标签 java user-interface label alignment awt

我已将标签放入框架中,但它拒绝移动。 SetBounds() 不起作用,如果我将任何参数放在“Result”下面,并且不是 0、1 或 2,那么我会收到不正确的对齐错误,而这些参数都没有将其放置在正确的位置。这是我声明标签的地方:

标签结果 = new Label("结果。", 3);

这是 SetBounds 语句:

结果.setBounds(0, 1500, 100, 20);

我正在编写的这个程序,我只是想让用户输入 2 个数字,将它们相加,然后使用 GUI 组件打印结果。结果是标签拒绝改变。整个程序的代码如下,程序还没有完成,但是如果你编译它,结果总是粘在左边,我希望它与文本字段处于同一水平。这个问题实际上发生在其他标签 Help1 和 Help2 上。请不要告诉我我必须使用 swing!我不喜欢 Swing 。

我尚未将事件更改为添加用户输入的位置。我从以前的程序中复制了该事件。

代码:(抱歉没有评论,但这不是一个很大的程序)

import java.awt.*;
import java.awt.event.*;

public class MouseClick {
    TextField number1;
    TextField number2;

    public static void main(String[] args) {
        MouseClick MC = new MouseClick();
    }

    public MouseClick() {
        Frame f = new Frame("Addition Time!");
        Button button = new Button("Click Here To Add The Two Numbers.");
        button.setBounds(175, 250, 230, 30);
        button.addMouseListener(new MyMouseListener());
        f.add(button);
        Label help1 = new Label("Enter the first number below.");
        Label help2 = new Label("Enter the second number below.");
        Label exprsn1 = new Label("+", 0);
        Label exprsn2 = new Label("=", 0);
        Label result = new Label("Result.", 3);
        number1 = new TextField("TextField1", 100);
        number2 = new TextField("TextField2", 100);
        help1.setBounds(50, 80, 150, 20);
        help2.setBounds(250, 80, 150, 20);
        exprsn1.setBounds(00, 80, 30, 30);
        exprsn2.setBounds(00, 80, 30, 30);
        number1.setBounds(50, 100, 100, 20);
        number2.setBounds(250, 100, 100, 20);
        result.setBounds(0, 1500, 100, 20);
        f.add(number1);
        f.add(number2);
        f.add(help1);
        f.add(help2);
        f.add(result);
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent we) {
                System.exit(0);
            }
        });
        f.setSize(600, 300);
        f.setVisible(true);
    }

    public class MyMouseListener extends MouseAdapter {
        public void mouseClicked(MouseEvent me) {
            String S = number1.getText();
            number2.setText(S);
        }
    }
}

最佳答案

错误是因为 3 不是构造函数中参数“alignment”的允许值

Label(String text, int alignment) 

您是否对具有类似构造函数的 TextField() 感到困惑?

TextField(String text, int columns)

标签未出现在正确位置的原因是您没有明确指定使用空布局。你需要这一行:

public MouseClick() {
    Frame f = new Frame("Addition Time!");
    f.setLayout(null);  // add this line

关于java - Java AWT 的不正确对齐错误。无法移动我的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9670084/

相关文章:

java - 如何创建 POI Word 格式的电子邮件链接

css - 应该在 Firefox 的 userContent.css 中定义什么命名空间?

java - 在 Java 中链接变量和文本框

ios - 具有固定宽度和 1 行的 UILabel,内容有时与省略号的训练不完全一致

用于在图表上设置标签的 Vba 代码

java - 使用 Spring Batch 进行事务管理

java - JButton 添加属性

java - 如何获取读取文件的进度

user-interface - Node-Red 检测仪表板页面访问

javascript - 如何更改标签的文本?