有时候写了一段java SWT 程序,有时运行显示正常有时运行不正常 . 还以为什么问题.
解决办法: 当初始化JFrame,最后才设置为可见的. 之后显示都正常
JFrame js = new JFrame("学些Swing");
js.setSize(WIDTH, HEIGHT);
js.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
js.setLocation(300, 300); //设置本地位置
JMenuBar jMenuBar = new JMenuBar();
JMenu menu1 = new JMenu("文件");
JMenu menu2 = new JMenu("编辑");
JMenu menu3 = new JMenu("视图");
jMenuBar.add(menu1);
jMenuBar.add(menu2);
jMenuBar.add(menu3);
JMenuItem item1 = new JMenuItem("打开");
JMenuItem item2 = new JMenuItem("保存");
JMenuItem item3 = new JMenuItem("打印");
JMenuItem item4 = new JMenuItem("退出");
item4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
menu1.add(item1);
menu1.add(item2);
menu1.add(item3);
menu1.add(item4);
js.setJMenuBar(jMenuBar);//
//添加面板
JPanel jPanel = new JPanel();
js.setContentPane(jPanel);
//设置按钮
JButton jb = new JButton("测试按钮");
jPanel.add(jb);
JButton jb2 = new JButton("取消按钮");
jPanel.add(jb2);
jb2.setToolTipText("不要取消吧 哥");//按钮提示
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("点击了");
}
});
//设置单选框
ButtonGroup buttonGroup = new ButtonGroup();
JRadioButton jRadioButton1 = new JRadioButton("有存款");
JRadioButton jRadioButton2 = new JRadioButton("没存款");
buttonGroup.add(jRadioButton1);
buttonGroup.add(jRadioButton2);
jPanel.add(jRadioButton1);
jPanel.add(jRadioButton2);
//设置复选框
Checkbox checkbox1 = new Checkbox("计算多少时间");
Checkbox checkbox2 = new Checkbox("计算多少钱");
jPanel.add(checkbox1);
jPanel.add(checkbox2);
js.setVisible(true); //这个必须在代码最后加载