窗体作为组件的载体,是展示界面程序的根本,也可以认为窗体是最外层的容器。
package chuangti; import java.awt.Color; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JLabel; public class Demo { public static void main(String[] args) { JFrame frame=new JFrame("窗体标题");//创建窗体对象 frame.setVisible(true);//设置窗体可见 //窗体可见后关闭窗体,窗体消失,但是程序并没有结束运行 //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //EXIT_ON_CLOSE:隐藏窗口时,停止程序 //frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); //DO_NOTHING_ON_CLOSE:无任何操作 //frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); //HIDE_ON_CLOSE:隐藏床体,但不停止程序 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //DISPOSE_ON_CLOSE:释放窗体资源 //frame.setSize(300,300);//设置窗体宽和高,单位:像素 //frame.setLocation(200, 200);//设置坐标,单位:像素 frame.setBounds(200, 200, 300, 300);//设置窗体坐标和大小,单位:像素 Container container=frame.getContentPane();//获取窗体容器 container.setBackground(Color.white);//设置背景颜色 JLabel label=new JLabel("zhongguo"); container.add(label);//添加组件 // container.remove(label);//删除组件 container.validate();//验证容器中的组件(刷新组件) // frame.setContentPane(container);//重新载入容器 frame.setResizable(false);//设置窗体是否可以改变大小 System.out.println("x="+frame.getX()+" y="+frame.getY());//获取窗体的位置坐标 } }
package chuangti; import java.awt.Color; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JLabel; public class Demo1 extends JFrame{//让Demo1类也成为一个窗体 public Demo1() { setVisible(true);//设置窗体可见 setTitle("窗体标题1"); //窗体可见后关闭窗体,窗体消失,但是程序并没有结束运行 //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //EXIT_ON_CLOSE:隐藏窗口时,停止程序 //frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); //DO_NOTHING_ON_CLOSE:无任何操作 //frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); //HIDE_ON_CLOSE:隐藏床体,但不停止程序 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //DISPOSE_ON_CLOSE:释放窗体资源 //frame.setSize(300,300);//设置窗体宽和高,单位:像素 //frame.setLocation(200, 200);//设置坐标,单位:像素 setBounds(200, 200, 300, 300);//设置窗体坐标和大小,单位:像素 Container container=getContentPane();//获取窗体容器 container.setBackground(Color.white);//设置背景颜色 JLabel label=new JLabel("zhongguo"); container.add(label);//添加组件 // container.remove(label);//删除组件 container.validate();//验证容器中的组件(刷新组件) // frame.setContentPane(container);//重新载入容器 setResizable(false);//设置窗体是否可以改变大小 System.out.println("x="+getX()+" y="+getY());//获取窗体的位置坐标 } public static void main(String[] args) { new Demo1(); } }
package duihuakuang; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class Demo extends JDialog{ public Demo(JFrame frame) { /* * 第一个参数,父窗体对象 * 第二个参数,对话框标题 * 第三个参数,是否阻塞父窗体 */ super(frame,"对话框标题",true); Container container=getContentPane();//获取窗体容器 container.add(new JLabel("这是一个对话框")); setBounds(100,100,100,100);//设置窗体坐标和大小 } public static void main(String[] args) { JFrame frame=new JFrame("父窗体"); frame.setBounds(50,50,300,300); Container container=frame.getContentPane(); JButton btnButton=new JButton("弹出对话框"); container.setLayout(new FlowLayout());//设置布局,使用流布局 container.add(btnButton); frame.setVisible(true); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); btnButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO 自动生成的方法存根 Demo demo=new Demo(frame); demo.setVisible(true); } });//添加动作监听 } }