题
我试图动态地通过调用每当一个按钮被点击的的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上,琴弦出现如预期,但他们掩盖,直到窗口大小。我缺少什么?
其他提示
尝试重新油漆帧或/和设置足够的空间(有必要对setPreferredSize,setMininumSize)
好了,大部分的帖子都一岁多,所以我就给你往好处想。我从来没有使用AWT,所以我不知道问题是什么,但我会建议:
1)正确写出你的类。 “日期”已经在JDK的类。选择一个更好的名字。
2)尝试使用代替AWT Swing组件。
3)从你的类摆脱静态变量。
4)摆脱的WindowListener的关闭帧。
在这里张贴的代码示例为10-15岁。尝试新的东西。先从的摆动更近的例子教程。
不隶属于 StackOverflow