📄 13.txt
字号:
例程13-1
//SameTypeDemo.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SameTypeDemo extends JFrame
{
JButton jb1, jb2, jb3;
//Construct the frame
public SameTypeDemo()
{
//获取内容Panel容器的引用
Container contentPane = getContentPane();
//设置内容Panel容器的布局管理器为null
contentPane.setLayout(null);
// 创建3 个Swing按钮
jb1 = new JButton("Swing Button #1");
jb2 = new JButton("Swing Button #2");
jb3 = new JButton("Swing Button #3");
// 设置Swing按钮的位置
jb1.setBounds(85, 25, 150, 65);
jb2.setBounds(100, 65, 150, 65);
jb3.setBounds(115, 105, 150, 65);
// 把Swing按钮加入到容器中并显示(注意添加的顺序)
contentPane.add(jb1);
contentPane.add(jb2);
contentPane.add(jb3);
}
//程序的入口方法
public static void main( String[] args )
{
//创建框架窗体
SameTypeDemo frmSameType = new SameTypeDemo();
frmSameType.setSize(new Dimension(400, 300));
//设置框架窗体的事件监听(关闭窗体事件)
frmSameType.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//显示框架窗体
frmSameType.validate();
frmSameType.show();
}
}
例程13-2
//DifferentTypeDemo.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DifferentTypeDemo extends JFrame
{
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
Button button1 = new Button();
//Constructor method
public DifferentTypeDemo()
{
//设置布局管理器为null
this.getContentPane().setLayout(null);
//轻量组件
jButton1.setText("Swing Button#1");
jButton1.setBounds(new Rectangle(72, 32, 164, 92));
jButton2.setText("Swing button#2");
jButton2.setBounds(new Rectangle(96, 91, 165, 91));
//重量组件
button1.setBounds(new Rectangle(177, 143, 137, 67));
button1.setLabel("AWT Button");
//添加组件到容器中
this.getContentPane().add(jButton1);
this.getContentPane().add(jButton2);
this.getContentPane().add(button1);
}
//程序的入口方法
public static void main(String[] args)
{
//创建框架窗体
DifferentTypeDemo differentTypeDemo = new DifferentTypeDemo();
//设置框架窗口的大小
differentTypeDemo.setSize(new Dimension(400, 300));
//设置框架窗体的事件监听(关闭窗体事件)
differentTypeDemo.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//显示框架窗体
differentTypeDemo.validate();
differentTypeDemo.show();
}
}
例程13-3
//BorderDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import javax.swing.*;
public class BorderDemo extends JFrame
{
public BorderDemo()
{
//设置框架窗口的标题
super("使用边框的例子");
//定义5个简单类型的边框
Border blackline, etched, raisedbevel, loweredbevel, empty;
//创建黑色的线状边框
blackline = BorderFactory.createLineBorder(Color.black);
//创建蚀刻边框
etched = BorderFactory.createEtchedBorder();
//创建凸出边框
raisedbevel = BorderFactory.createRaisedBevelBorder();
//创建凹陷边框
loweredbevel = BorderFactory.createLoweredBevelBorder();
//创建空的边框
empty = BorderFactory.createEmptyBorder();
//First pane: simple borders
JPanel simpleBorders = new JPanel();
simpleBorders.setLayout(new BoxLayout(simpleBorders, BoxLayout.Y_AXIS));
addCompForBorder(blackline, "线状边框",simpleBorders);
addCompForBorder(etched, "蚀刻边框",simpleBorders);
addCompForBorder(raisedbevel, "凸出边框",simpleBorders);
addCompForBorder(loweredbevel, "凹陷边框",simpleBorders);
addCompForBorder(empty, "空的边框",simpleBorders);
//Second pane: titled borders
JPanel titledBorders = new JPanel();
titledBorders.setLayout(new BoxLayout(titledBorders,BoxLayout.Y_AXIS));
TitledBorder titled;
titled = BorderFactory.createTitledBorder("title");
addCompForBorder(titled,
"default titled border"
+ " (default just., default pos.)",
titledBorders);
titled = BorderFactory.createTitledBorder(blackline, "title");
addCompForTitledBorder(titled,
"titled line border"
+ " (centered, default pos.)",
TitledBorder.CENTER,
TitledBorder.DEFAULT_POSITION,
titledBorders);
titled = BorderFactory.createTitledBorder(etched, "title");
addCompForTitledBorder(titled,
"titled etched border"
+ " (right just., default pos.)",
TitledBorder.RIGHT,
TitledBorder.DEFAULT_POSITION,
titledBorders);
titled = BorderFactory.createTitledBorder(loweredbevel, "title");
addCompForTitledBorder(titled,
"titled lowered bevel border"
+ " (default just., above top)",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.ABOVE_TOP,
titledBorders);
titled = BorderFactory.createTitledBorder(empty, "title");
addCompForTitledBorder(titled, "titled empty border"
+ " (default just., bottom)",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.BOTTOM,
titledBorders);
//创建TabbledPane组件
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("简单的边框", null, simpleBorders, null);
tabbedPane.addTab("带有标题的边框", null, titledBorders, null);
tabbedPane.setSelectedIndex(0);
getContentPane().add(tabbedPane, BorderLayout.CENTER);
}
//添加带有标题的边框
void addCompForTitledBorder(TitledBorder border,
String description,
int justification,
int position,
Container container)
{
border.setTitleJustification(justification);
border.setTitlePosition(position);
addCompForBorder(border, description,
container);
}
//添加简单的边框
void addCompForBorder(Border border,
String description,
Container container)
{
JPanel comp = new JPanel(false);
JLabel label = new JLabel(description, JLabel.CENTER);
comp.setLayout(new GridLayout(1, 1));
comp.add(label);
comp.setBorder(border);
container.add(Box.createRigidArea(new Dimension(0, 10)));
container.add(comp);
}
//程序的入口方法
public static void main(String[] args)
{
JFrame frame = new BorderDemo();
//添加框架窗口的事件监听(监听关闭框架窗口事件)
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
//正常推出Java虚拟机
System.exit(0);
}
});
//显示框架窗口
frame.pack();
frame.setVisible(true);
}
}
例程13-4
//LabelDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class LabelDemo extends JFrame
{
public LabelDemo()
{
//设置框架窗口标题
super("JLabel Demo");
//设置框架窗口的大小为宽为600,高为400
setSize(600, 400);
//获取内容窗格容器
Container content = getContentPane();
//设置内容窗格容器的布局管理器为BorderLayout
content.setLayout(new BorderLayout());
//创建一个JPanel容器,并加入到内容窗格容器的上部
JPanel pnlLabel=new JPanel();
pnlLabel.setLayout(new GridLayout(1, 4, 4, 4));
content.add(pnlLabel,BorderLayout.NORTH);
//创建一个可滚动的面板,并将图像标签加入到其中?
JScrollPane pnlImage=new JScrollPane(new JLabel(new ImageIcon("image.jpg")));
//把滚动面板加入到内容窗格容器的中部
content.add(pnlImage,BorderLayout.CENTER);
//下面的代码是往JPanel容器中加入各种标签
JLabel label = new JLabel();
label.setText("JLabel");
label.setBackground(Color.white);
pnlLabel.add(label);
label = new JLabel("JLabel",SwingConstants.CENTER);
label.setOpaque(true);
label.setBackground(Color.white);
pnlLabel.add(label);
label = new JLabel("JLabel");
label.setFont(new Font("Helvetica", Font.BOLD, 18));
label.setOpaque(true);
label.setBackground(Color.white);
pnlLabel.add(label);
ImageIcon image = new ImageIcon("flight.gif");
label = new JLabel("JLabel", image,SwingConstants.RIGHT);
label.setVerticalTextPosition(SwingConstants.TOP);
label.setOpaque(true);
label.setBackground(Color.white);
pnlLabel.add(label);
//显示框架窗口
setVisible(true);
}
//应用程序的入口方法
public static void main(String args[])
{
LabelDemo frame=new LabelDemo();
//添加框架窗口的事件监听(监听关闭框架窗口事件)
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
//正常退出Java虚拟机
System.exit(0);
}
});
}
}
例程13-5
//ButtonDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ButtonDemo extends JFrame
{
Icon icon = new ImageIcon("flight.gif");
JButton noargButton = new JButton(),
textButton = new JButton("text"),
textIconButton = new JButton("text", icon),
iconButton = new JButton(icon);
public ButtonDemo()
{
//设置框架窗口标题
super("JButton Demo");
//获取内容窗格容器
Container contentPane = getContentPane();
//设置内容窗格容器的布局管理器为FlowLayout
contentPane.setLayout(new FlowLayout());
//把四个JButton组件加入到内容窗格容器中
contentPane.add(noargButton);
contentPane.add(textButton);
contentPane.add(iconButton);
contentPane.add(textIconButton);
//显示框架窗口
pack();
setVisible(true);
}
//应用程序的入口方法
public static void main(String args[])
{
ButtonDemo frame=new ButtonDemo();
//添加框架窗口的事件监听(监听关闭框架窗口事件)
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
//正常推出Java虚拟机
System.exit(0);
}
});
}
}
例程13-6
// ToggleButtonDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class ToggleButtonDemo extends JFrame
{
JPanel pnlGroup = new JPanel();
JPanel pnlSimple = new JPanel();
TitledBorder titledBorder1;
public ToggleButtonDemo()
{
//把两个容器Panel加入到框架窗口的内容窗格中
this.getContentPane().add(pnlSimple, BorderLayout.NORTH);
this.getContentPane().add(pnlGroup, BorderLayout.CENTER);
//在第一容器Panel中加入四个反转按钮
pnlSimple.setBorder(new EtchedBorder(EtchedBorder.RAISED));
JToggleButton button1 = new JToggleButton("Text");
JToggleButton button2 = new JToggleButton(new ImageIcon("flight.gif"));
JToggleButton button3 = new JToggleButton(new ImageIcon("flight.gif"),true);
JToggleButton button4 = new JToggleButton("Text",true);
pnlSimple.add(button4);
pnlSimple.add(button3);
pnlSimple.add(button2);
pnlSimple.add(button1);
//在第二容器Panel中加入三个反转按钮并通过添加到ButtonGroup中
titledBorder1 = new TitledBorder(BorderFactory.createEtchedBorder(),"Button group");
pnlGroup.setBorder(titledBorder1);
ButtonGroup group=new ButtonGroup();
JToggleButton[] buttons=new JToggleButton[]{
new JToggleButton( new ImageIcon("flight.gif")),
new JToggleButton( new ImageIcon("flight.gif")),
new JToggleButton( new ImageIcon("flight.gif")),
};
for( int i=0; i< buttons.length; i++ ){
group.add(buttons[i]);
pnlGroup.add(buttons[i]);
}
//显示框架窗口
pack();
setVisible(true);
}
//应用程序的入口方法
public static void main(String args[])
{
ToggleButtonDemo frame = new ToggleButtonDemo();
//添加框架窗口的事件监听(监听关闭框架窗口事件)
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
//正常推出Java虚拟机
System.exit(0);
}
});
}
}
例程13-7
// CheckButtonDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CheckButtonDemo extends JFrame
{
public CheckButtonDemo()
{
//获取内容窗格容器
Container contentPane= this.getContentPane();
//设置内容窗格容器的布局管理器为FlowLayout
contentPane.setLayout(new FlowLayout());
//内容窗格容器中加入两个复选按钮
JCheckBox button1 = new JCheckBox("Text1");
JCheckBox button2 = new JCheckBox("Text2",true);
contentPane.add(button2);
contentPane.add(button1);
//显示框架窗口
pack();
setVisible(true);
}
//应用程序的入口方法
public static void main(String args[])
{
CheckButtonDemo frame = new CheckButtonDemo();
//添加框架窗口的事件监听(监听关闭框架窗口事件)
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
//正常推出Java虚拟机
System.exit(0);
}
});
}
}
例程13-8
// RadioButtonDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RadioButtonDemo extends JFrame
{
public RadioButtonDemo()
{
//获取内容窗格容器
Container contentPane= this.getContentPane();
//设置内容窗格容器的布局管理器为FlowLayout
contentPane.setLayout(new FlowLayout());
//内容窗格容器中加入两个单选按钮
JRadioButton button1 = new JRadioButton("Text1");
JRadioButton button2 = new JRadioButton("Text2",true);
contentPane.add(button1);
contentPane.add(button2);
//把两个单选按钮加入到ButtonGroup控件组中
ButtonGroup group = new ButtonGroup();
group.add(button1);
group.add(button2);
//显示框架窗口
pack();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -