tonglin0325的个人主页

Java——窗体:JFrame、JPanel等

1.JFrame#

 

创建一个新的窗体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.awt.Color;
import javax.swing.JFrame;

//主类
//Function : JFrame_demo
public class JFrame_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口");
f.setSize(230,80);
f.setBackground(Color.WHITE);
f.setLocation(300, 200);
f.setVisible(true);
}

}

 

除了JFrame表示之外,还有其他几种常见的窗体:JPanel、JSplitPane、JTabbedPane、JScrollPane、JDesktopPane、JInternalFrame等。

2.JPanel#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

//主类
//Function : JPanel_demo
public class JPanel_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
JPanel pan = new JPanel(); //实例化JPanel对象
pan.add(new JLabel("标签--A"));
pan.add(new JLabel("标签--B"));
pan.add(new JLabel("标签--C"));
pan.add(new JButton("按钮--A"));
pan.add(new JButton("按钮--B"));
pan.add(new JButton("按钮--C"));
f.add(pan); //将JPanel加入到窗体中
f.pack();
f.setLocation(300,200); //设置显示位置
f.setVisible(true);
}

}

3.JSplitPane#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;

//主类
//Function : JSplitPane_demo
public class JSplitPane_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
Container cont = f.getContentPane(); //得到窗体容器
JSplitPane lfsplit = null; //左右分割的JSplitPane
JSplitPane tbsplit = null; //上下分割的JSplitPane

lfsplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,new JLabel("左标签"),new JLabel("右标签"));
lfsplit.setDividerSize(20); //设置左右的分割线大小

tbsplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT,lfsplit,new JLabel("右标签"));
tbsplit.setDividerSize(10); //按百分比设置上下的分割线大小
tbsplit.setOneTouchExpandable(true); //快速展开/折叠分割条
cont.add(tbsplit); //将tbsplit加入到窗体
f.setSize(230, 80); //设置窗体
f.setLocation(300,200); //设置显示位置
f.setVisible(true);
}

}

4.JTabbedPane#

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.awt.Container;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

//主类
//Function : JTabbedPane_demo
public class JTabbedPane_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
Container cont = f.getContentPane(); //得到窗体容器
JTabbedPane tab = null;
tab = new JTabbedPane(JTabbedPane.TOP); //设置标签在顶部显示
JPanel pan1 = new JPanel(); //设置面板
JPanel pan2 = new JPanel(); //设置面板
JButton but = new JButton("按钮"); //定义按钮
JLabel lab = new JLabel("标签"); //定义标签
pan1.add(but);
pan2.add(lab);
String picPath = "/home/common/software/database/123.jpg";
tab.addTab("图片选项", new ImageIcon(picPath), pan1,"图像");
tab.addTab("文字选项", pan2);
cont.add(tab); //加入到容器中
f.setSize(440, 320); //设置窗体
f.setLocation(300,200); //设置显示位置
f.setVisible(true);
}

}

5.JScrollPane#

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.awt.Container;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

//主类
//Function : JScrollPane_demo
public class JScrollPane_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
Container cont = f.getContentPane(); //得到窗体容器
String picPath = "/home/common/software/database/photo.jpg";
Icon icon = new ImageIcon(picPath); //实例化Icon对象
JPanel pan = new JPanel(); //定义一个面板
JLabel lab = new JLabel(icon); //定义一个标签,显示图片
pan.add(lab); //将标签加到面板中
JScrollPane scrl = null; //声明滚动面板
scrl = new JScrollPane(pan,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
cont.add(scrl); //加入到容器中
f.setSize(440, 320); //设置窗体
f.setLocation(300,200); //设置显示位置
f.setVisible(true);
}

}

6.JDesktopPane和JInternalFrame#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

//主类
//Function : JDesktopPane_demo
public class JDesktopPane_demo {

public static void main(String[] args) {
// TODO 自动生成的方法存根
JFrame f = new JFrame("Swing窗口"); //实例化窗体对象
f.setLayout(new BorderLayout()); //设置布局管理器
Container cont = f.getContentPane(); //得到窗体容器
JDesktopPane desk = new JDesktopPane(); //实例化JDesktopPane容器
cont.add(desk, BorderLayout.CENTER); //将Desktop加入到窗体
JInternalFrame jif = null; //声明一个内部窗体对象
String picPath = "/home/common/software/database/123.jpg";
Icon icon = new ImageIcon(picPath); //实例化Icon对象
JPanel pan = null;
for(int i=0;i<3;i++){
jif = new JInternalFrame("指定标签"+i,true,true,true,true);
pan = new JPanel(); //定义一个面板
pan.add(new JLabel(icon)); //加入一个标签
jif.setLocation(35-i*10, 35-i*10); //设置显示位置
jif.add(pan);

jif.pack();
jif.setVisible(true);
desk.add(jif); //将内部窗体加入到Desktop中
}
f.setSize(440, 320); //设置窗体
f.setLocation(300,200); //设置显示位置
f.setVisible(true);
}

}