一、先上段标准的HelloWord:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class HelloWorldSwing {
/**
* 创建并显示GUI。出于线程安全的考虑,
* 这个方法在事件调用线程中调用。
*/
private static void createAndShowGUI() {
// 确保一个漂亮的外观风格
// JFrame.setDefaultLookAndFeelDecorated(true);
// 创建及设置窗口
JFrame frame = new JFrame("HelloWorldSwing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击“x”后关闭程序
frame.setSize(300, 200);
//创建一个面板
JPanel panel = new JPanel();
// 添加 "Hello World" 标签
JLabel label = new JLabel("Hello World");
panel.add(label);
frame.getContentPane().add(panel);
frame.setLocationRelativeTo(null);//居中
// 显示窗口
// frame.pack();//根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小
frame.setVisible(true);
}
public static void main(String[] args) {
// 显示应用 GUI
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
解释一下
1. 第一句“确保一个漂亮的外观风格”是某些程序加上的,我为什么注释上了?
没这句的效果:
有这句的效果:
反正我是感觉更丑了(可能有其他什么好处吧)
2. “frame.pack();”也是在很多helloWord里可以看到的,我也注释了。后面有解释:加上这句话代表:窗口的大小是根据里面的内容自动调节的,上面的设置窗口大小就失效了,现在里面只有一个小lable,加上这句话,这个窗口就太小了是这个样子的:
3. 最后启动的时候为什么用SwingUtilities,一句话说不清楚,给个链接:
Swing线程之SwingUtilities.invokeLater解释【有兴趣可以研读一下,否则就按固定写法吧】
二、布局管理器
不管用什么GUI(这不念“鬼”啊..),布局问题肯定绕不开
Swing布局管理器介绍
强调一下默认的也是比较常用的布局管理器:边界布局管理器
它分为东、西、南、北、中,如下图所示。
默认是放中间、哪个位置没指定,哪个位置就被别的指定位置“挤”掉(默认只有一个“中”,所以挤掉了其他四个位置,占据整个窗口)
这就是我认为学习swing重要也是基础的两点,至于其他的功能,我也没有更深的研究,等我有了新的认识,再来补充这篇博客