java Swing编程1--创建窗体JFrame

时间:2023-01-27 23:21:02

如果要使用Swing创建一个窗口,则可以使用JFrame类即可,JFrame类是Component类(容器类)的实例
JFrame中常用方法:

序号 方法 描述 所属类
1 public JFrame() throws HeadlessException 构造一个初始时不可见的新窗体。 JFrame类
2 public JFrame(String title) throws HeadlessException 创建一个新的、初始不可见的、具有指定标题的 Frame。 JFrame类
3 public void setSize(int width,int height) 调整组件的大小,使其宽度为 width,高度为 height。 继承于Window类
4 public void setSize(Dimension d) 调整组件的大小,使其宽度为 d.width,高度为 d.height。 继承于Window类
5 public void setBackground(Color c) 设置组件的背景色。 继承于java.awt.Frame
6 public void setLocation(int x,int y) 将组件移到新位置。通过此组件父级坐标空间中的 x 和 y 参数来指定新位置的左上角。 继承于java.awt.Window类
7 public void setLocation(Point p) 将组件移到新位置。通过点 p 来指定新位置的左上角。在父级坐标空间中给出点 p。 java.awt.Window
8 public void setVisible(boolean b) 根据参数 b 的值显示或隐藏此组件。 java.awt.Window
9 public Component add(Component comp) 将指定组件追加到此容器的尾部。 java.awt.Container
10 public void setLayout(LayoutManager manager) 设置 LayoutManager。 JFrame类,重写Container类的该方法
11 public void pack() 调整此窗口的大小,以适合其子组件的首选大小和布局 继承于java.awt.Window
12 Container getContentPane() 返回此窗体的 contentPane 对象 JFrame类

创建一个窗口的实例:

import javax.swing.JFrame ;
import java.awt.Color ;
public class JFrameDemo01{
        public static void main(String args[]){
                JFrame f = new JFrame("第一个Swing窗体") ;
                f.setSize(230,80) ;             // 设置组件的大小
                f.setBackground(Color.WHITE) ;  // 将背景设置成白色
                f.setLocation(300,200) ;        // 设置组件的显示位置
                f.setVisible(true) ;            // 让组件可见
        }
};

运行结果:
java Swing编程1--创建窗体JFrame
可以看到以上程序运行之后,会直接显示出一个窗体,窗体的名称是:第一个Swing窗体
实例2:

import javax.swing.JButton;
import javax.swing.JFrame ;
import javax.swing.JPanel;
import java.awt.Color ;
import java.awt.Dimension ;
import java.awt.Point ;
public class JFrameDemo02{
    public static void main(String args[]){
        JFrame f = new JFrame("第一个Swing窗体") ; //创建一个窗体
        Dimension d = new Dimension() ;
        d.setSize(400,200) ;
        f.setSize(d) ;                  // 设置组件的大小
        f.setBackground(Color.RED) ;    // 将背景设置成白色
        Point p = new Point(300,200) ;  // 指定组件的显示位置
        JPanel jPanel=new JPanel();
        JButton button1=new JButton("按钮1");
        JButton button2=new JButton("按钮2");
        JButton button3=new JButton("按钮3");
        jPanel.add(button1);//添加一个按钮
        jPanel.add(button2);
        jPanel.add(button3);
        f.add(jPanel);
// f.pack();//以窗体中组件的大小来显示窗口
        f.setLocation(p) ;              // 设置组件的显示位置
        f.setVisible(true) ;            // 让组件可见
    }
};

在这个实例中创建了一个JPanel(面板),并在面板上添加了三个按钮。
运行效果:
java Swing编程1--创建窗体JFrame
pack()方法会按窗体中的组件的实际大小来显示:把上面的f.pack()这一句取消注释:
运行结果:
java Swing编程1--创建窗体JFrame
在上面的代码中面板中只能放一个组件,如果重复放的话只显示最后面放入面板中的组件:

import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Point;
public class JFrameDemo03 {
    public static void main(String args[])
    {
        JFrame f = new JFrame("第一个Swing窗体"); // 创建一个窗体
        Dimension d = new Dimension();
        d.setSize(400, 200);
        f.setSize(d); // 设置组件的大小
        f.setBackground(Color.RED); // 将背景设置成白色
        Point p = new Point(300, 200); // 指定组件的显示位置
        JButton button1 = new JButton("按钮1");
        JButton button2 = new JButton("按钮2");
        JButton button3 = new JButton("按钮3");
        f.add(button1);// 添加一个按钮
        f.add(button2);
        f.add(button3);
        f.setLocation(p); // 设置组件的显示位置
        f.setVisible(true); // 让组件可见
    }
}

运行结果:
java Swing编程1--创建窗体JFrame
可以看到这里只显示最后放进去的按钮3