【发布时间】:2017-08-08 22:18:21
【问题描述】:
我不明白为什么我编译程序时没有出现panel.add(txtnum1) 和panel.add(button2)。 panel.add(button) 工作正常,我的编译器没有抛出任何警告或错误,我错过了什么吗?
package gui;
import javax.swing.*;
import java.awt.*;
public class GUI {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(new Dimension(300, 500));
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setBackground(Color.GRAY);
frame.getContentPane().add(panel);
JButton button = new JButton("Submit");
panel.add(button);
JTextField txtnum1 = new JTextField();
txtnum1.setPreferredSize(new Dimension(30, 50));
panel.add(txtnum1);
JButton button2 = new JButton("Clear");
panel.add(button2);
}
}
【问题讨论】:
-
其他组件可能已添加到面板中而无法查看。您应该通过使用布局管理器而不是设置绝对位置和大小来控制组件的显示方式。
-
JTextField txtnum1 = new JTextField(); txtnum1.setPreferredSize(new Dimension(30, 50));文本字段的大小应使用setColumns(int)设置字符宽度,setFont(bigOrSmallFont)更改高度(和宽度)。 -
“我的编译器没有抛出任何警告或错误,是我遗漏了什么吗?” 编译器不会发现很多运行时可能出错的东西。摒弃编译OK就没有bug的观念。