如果要使用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) ; // 让组件可见
}
};
运行结果:
可以看到以上程序运行之后,会直接显示出一个窗体,窗体的名称是:第一个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(面板),并在面板上添加了三个按钮。
运行效果:
pack()方法会按窗体中的组件的实际大小来显示:把上面的f.pack()这一句取消注释:
运行结果:
在上面的代码中面板中只能放一个组件,如果重复放的话只显示最后面放入面板中的组件:
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); // 让组件可见
}
}
运行结果:
可以看到这里只显示最后放进去的按钮3