gpt4 book ai didi

java - 使用 setText 方法无法正确显示标签中的文本

转载 作者:行者123 更新时间:2023-11-30 05:15:03 25 4
gpt4 key购买 nike

我试图通过在单击按钮时调用 setText 方法来动态设置标签中的文本。这是我的代码:

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

class Date {
public static void main(String[] args) {
new MainWindow();
}
}

class MainWindow {
static Label month = new Label();
static Label day = new Label();
static Button submit = new Button("Submit");

MainWindow() {
Frame myFrame = new Frame("Date Window");
myFrame.setLayout(new FlowLayout());
myFrame.add(month);
myFrame.add(day);
myFrame.add(submit);
submit.addActionListener(new ButtonListener());

myFrame.addWindowListener(new WindowListener());
myFrame.setSize(200, 200);
myFrame.setVisible(true);
}
}

class WindowListener extends WindowAdapter {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}

class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
if (event.getSource() == MainWindow.submit) {
MainWindow.month.setText("12");
MainWindow.day.setText("31");
}
}
}

当我在没有任何参数的情况下初始化两个 Label 对象时,当单击提交按钮时,传递给 setText 方法的字符串“12”和“31”在屏幕上不可见,直到我单击窗口并拖动以调整其大小。我只在 Mac 上注意到了这一点。在 PC 上,字符串是可见的,但在我调整窗口大小之前会被遮挡。但是,如果我像这样初始化标签:

    static Label month = new Label("0");
static Label day = new Label("0");

在 Mac 上,字符串按预期显示,但是,在调整窗口大小之前它们会被遮挡。我错过了什么?

最佳答案

如上所述在框架上调用 validate() here问题解决了。

关于java - 使用 setText 方法无法正确显示标签中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1775858/

25 4 0