java swing最简单实例(1) 一个空的JFrame
我准备写一个系列的java图形化界面的教程。每个程序都尽量只写维持运行所需的最简化程度的代码,好让大家都看懂。
使用java图形界面只需要jdk,eclipse即可。如果布局抽象能力不够强大,建议装jigloo先用它布局然后再抄代码。(jigloo自动生成的代码冗余量太大,放的位置也不合理,只是为了看效果,之后还是需要ctrl+C,ctrl+V的)
要想放置一切东西,我们需要先有一个JFrame。所以就先讲一讲怎样创建一个空的JFrame。
下面是一个最简单的例子,首先我们需要extends JFrame,这样当前类自己就是一个JFrame了。然后在函数中创建当前类的对象,就是创建一个JFrame了。代码按照从上到下的顺序逐条阅读即可。
package basicCompoment; import javax.swing.JFrame; import javax.swing.WindowConstants; public class EmptyJFrame extends JFrame{ public static void main(String[] args) { //现在创建了一个对象,不过什么都显示不出来 EmptyJFrame f = new EmptyJFrame(); //加上这一句就可以显示一个仅有关闭,最小化,最大化的按钮的Frame了 f.setVisible(true); //再加上这一句就可以显示一个在左上角,拥有指定大小的Frame了 f.setSize(300,400); //再加上这一句就可以把Frame放在最中间了 f.setLocationRelativeTo(null); //如果没有这一句,在点击关闭Frame的时候程序其实还是在执行状态中的,加上这一句才算是真正的把资源释放掉了 f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); } }
通常将JFrame的创建放在SwingUtilities.invokeLater中,如下
package basicCompoment; import javax.swing.JFrame; import javax.swing.SwingUtilities; import javax.swing.WindowConstants; public class EmptyJFrame2 extends JFrame{ EmptyJFrame2(){ initGUI(); } private void initGUI(){ setVisible(true); setSize(300,400); setLocationRelativeTo(null); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { EmptyJFrame2 f = new EmptyJFrame2(); } }); } }