【发布时间】:2013-03-10 11:43:36
【问题描述】:
public class Pencere{
JFrame pencere = new JFrame();
JButton buton1, buton2;
public Pencere() {
pencere.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pencere.setTitle("Ana Pencere");
pencere.setBackground(Color.getHSBColor(15f, 120f, 220f));
pencere.setLocation(new Point(500, 300));
pencere.setSize(613, 253);
pencere.addMouseListener(new Dinle());
pencere.setLayout(new FlowLayout());
pencereDegis();
}
public void goster(){
pencere.setVisible(true);
}
public void pencereDegis(){
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (ClassNotFoundException | InstantiationException
| IllegalAccessException | UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
buton2 = new JButton("Butonnn"); //This button not visible
pencere.add(buton2);
pencere.pack();
}
}
当我运行我的应用程序(我显示 JFrame 窗口),所有代码都正常工作,但是当我没有看到“Butonnn”按钮后调用 pencereDegis() 方法时。
对不起我的英语不好谢谢大家..
【问题讨论】:
-
什么时候调用 goster() 方法?我们可以看看你启动应用的主要方法吗?
-
公共类 AnaMetod { public static void main(String[] args) { Pencere pencere = new Pencere(); pencere.goster(); } }
-
只需将您在
goster()方法中编写的try-catch块注释一会,然后运行程序。除此之外,切勿直接在JFrame上添加组件,而是检索@ 987654325@ 使用pencere.getContentPane()然后在Container上添加组件。 -
是的,我在 main 方法中编写它都可以正常工作,但我看不到 buton2 :/ 我正在尝试这个 pencere.getContentPane().add(buton2);但不工作
-
我在我的
main()中使用此代码和pencere.goster()进行了尝试,效果很好。关于您的LookAndFeel,请小心,因为此代码不会在每个操作系统上运行。你应该这样做:UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());