java GUI 总结(2)JFrame
1.JFrame窗体是一个容器,作为其他组件的载体。
使用方法:(1)继承自java.swing.JFrame类。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.awt.BorderLayout; 2 3 import javax.swing.JFrame; 4 import javax.swing.JLabel; 5 6 public class Test extends JFrame{ 7 private static final long serialVersionUID = 1L; 8 9 public Test(){ 10 super(); //调用父类构造方法,创建一个默认隐藏的窗体 11 setTitle("衿沫青冥"); //设置标题 12 setBounds(0, 0, 300, 300); //设置窗体位置坐标(0,0),大小300*300 13 setDefaultCloseOperation(EXIT_ON_CLOSE);//设置窗体关闭方式 14 getContentPane().add(new JLabel("hello!"),BorderLayout.CENTER);//添加文字标签“hello” 15 setVisible(true); //设置窗体可见 16 } 17 public static void main(String[] args) { 18 // TODO 自动生成的方法存根 19 new Test(); 20 } 21 22 }
(2)使用new操作符创建。
JFrame() 构造一个初始不可见的窗体。
JFrame(String title) 构造第一初始不可见,具有指定标题的新窗体。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.awt.BorderLayout; 2 3 import javax.swing.JFrame; 4 import javax.swing.JLabel; 5 6 public class Test{ 7 public Test(){ 8 JFrame frame = new JFrame(); 9 frame.setTitle("衿沫青冥"); //设置标题 10 frame.setBounds(0, 0, 300, 300); //设置窗体位置坐标(0,0),大小300*300 11 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体关闭方式 12 frame.getContentPane().add(new JLabel("hello!"),BorderLayout.CENTER);//添加文字标签“hello” 13 frame.setVisible(true); //设置窗体可见 14 } 15 public static void main(String[] args) { 16 // TODO 自动生成的方法存根 17 new Test(); 18 } 19 }
2.有关窗体的关闭方式
void setDefaultCloseOperation(int)
DO_NOTHING_ON_CLOSE; 什么都不做就关闭窗体
DISPOSE_ON_CLOSE; 隐藏并释放窗体所占资源
HIDE_ON_CLOSE; 隐藏窗口
EXIT_ON_CLOSE; 退出应用程序
调用 int getDefaultCloseOperation()可获得已设置的窗体关闭方式。
3.有关窗体的位置和大小
(1)设置位置和大小
void setBounds(int, int, int, int)
void setBounds(Rectangle)
(2)设置大小
void setSize(int, int)
void setSize(Dimension)
Dimension getSize()
(3)设置位置
void setLocation(int, int)
Point getLocation()
(4)设置窗体居显示屏正中显示
使用方法:void setLocationRelativeTo(Component),将Component设置成null
或者使用:
final Dimension size = getToolkit().getScreenSize(); setLocation((size.width - x)/ 2, (size.height - y) / 2); //x,y为窗体的宽和高
4.其他常用方法
void setJMenuBar(JMenuBar menuBar);设置窗体的菜单栏
JMenuBar getJMenuBar();返回此窗体设置的菜单栏
void setContentPane(Container containerPane);设置窗体的内容面板
Container getContentPane();返回窗体的内容面板
void remove(Component comp);从容器中移除指定组建
void setIconImage(Image image);设置窗口图标显示的图像
5.JFrame的综合使用
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 class Test extends JFrame(){ 2 public MainFrame(){ 3 super(); 4 setTitle("呆呆酒店管理系统"); 5 setSize(1500,900); 6 final Dimension size = getToolkit().getScreenSize(); 7 setLocation((size.width - 1500)/ 2, (size.height - 900) / 2); 8 setDefaultCloseOperation(EXIT_ON_CLOSE); 9 10 setContentPane(getPanel()); 11 12 } 13 /** 14 * 获取主窗体面板 15 * @return a MainFrame Panel 16 */ 17 private JPanel getPanel(){ 18 panel = new JPanel(); 19 panel.setLayout(new BorderLayout()); 20 21 panel.add(getTabbedPane(),BorderLayout.NORTH); 22 panel.add(getDesktopPane(),BorderLayout.CENTER); 23 panel.add(getStatePane(),BorderLayout.SOUTH); 24 25 return panel; 26 27 } 28 }