JFrame
作用
注意事项
代码示例
public class WindowJFrame {//Swing中Jframe窗口练习
public static void main(String[] args) {
new WindowJFrame("Swing中JFrame窗口练习");
}
public WindowJFrame(String total) {
JFrame frame = new JFrame(total);//创建JFrame窗口
//设置窗口的位置大小属性
frame.setBounds(100, 100, 500, 500);
//获得窗口的容器
Container container = frame.getContentPane();
//使用窗口容器设置窗口的布局为绝对布局
container.setLayout(null);
//设置标签
Label label = new Label("这是JFrame窗口的标签");
label.setBackground(Color.yellow);
label.setBounds(200, 200, 150, 50);
//将标签添加进窗口容器中
container.add(label);
//设置可见性及窗口的关闭按钮
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
JDialog
作用
代码练习
public class JDialogTest extends JFrame {//Swing弹窗练习
public static void main(String[] args) {
new JDialogTest("Swing中弹窗JDialog的练习");
}
public JDialogTest(String total) {
//设置窗口
super(total);
this.setBounds(100, 100, 500, 500);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setResizable(false);//设置窗口是否可拉伸
//得到窗口的容器,用来设置布局,放置组件
Container container = this.getContentPane();
//设置窗口容器的布局
container.setLayout(null);//设置为绝对布局
//创建一个JButton按钮
JButton button = new JButton("点击我,你就可以获得一个弹窗");
button.setBounds(150, 200, 250, 50);
button.setBackground(Color.yellow);
//设置JButton按钮的触发事件,弹出一个弹窗
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new MyJDialog("这是我的弹窗");//创建弹窗
}
});
//将JButton按钮放进容器中
container.add(button);
}
}
class MyJDialog extends JDialog {
public MyJDialog(String total) {
//设置弹窗
this.setBounds(500, 50, 400, 400);
this.setVisible(true);/*不需要因为弹窗自实现窗口关闭功能*/
this.setTitle("你想要的小弹窗");
this.setResizable(false);
//获得弹窗的容器
Container container = this.getContentPane();
container.setLayout(null);
//创建标签
JLabel label = new JLabel("我的弹窗标签");
label.setBounds(150, 100, 100, 50);
label.setBackground(Color.cyan);
//将JLabel标签放进弹窗中
container.add(label);
}
}
作用
代码练习
public class IconTest extends JFrame implements Icon {//Swing图标练习
private int width;
private int height;
public static void main(String[] args) {
new IconTest().init();
}
/**
* 初始化方法
*/
private void init() {
IconTest frame = new IconTest(50, 30);
this.setBounds(100, 100, 500, 500);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setResizable(false);
this.setVisible(true);
JLabel label = new JLabel("图标", frame, SwingConstants.CENTER);
//得到窗口的容器
Container container = this.getContentPane();
//将标签添加进窗口容器中
container.add(label);
}
public IconTest() {
}
public IconTest(int width, int height) {
this.width = width;
this.height = height;
}
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
g.setColor(Color.YELLOW);
g.fillRect(x, y, 50, 30);
}
@Override
public int getIconWidth() {
return this.width;
}
@Override
public int getIconHeight() {
return this.height;
}
}
ImageIcon
作用
代码练习
public class ImageTest {//将一个图片设为标签的图案
public static void main(String[] args) {
new MyJFrame("将图片设置为标签的图案练习");
}
}
class MyJFrame extends JFrame {
public MyJFrame() {
super();
}
public MyJFrame(String title) {
super(title);
this.setBounds(100, 100, 500, 500);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//得到图片的资源
URL url = MyJFrame.class.getResource("littleRobot.jpg");//括号内是图片的路径
//将图片转为图标
ImageIcon imageIcon = new ImageIcon(url);
JLabel label = new JLabel("我的标签");
label.setSize(26, 23);
label.setLocation(150, 150);
//将图标与标签关联
label.setIcon(imageIcon);
label.setHorizontalAlignment(SwingConstants.CENTER);
//创建窗口容器,并将标签添加进去
Container container = this.getContentPane();
container.add(label);
this.setVisible(true);//最有再将窗口设置为可见
}
}
JPanel
作用
代码练习
public class JPanelTest {//JPanel面板练习
public static void main(String[] args) {
new MyJPanelFrame("JPanel面板练习");
}
}
/**
* 自定义的窗口类
*/
class MyJPanelFrame extends JFrame {
public MyJPanelFrame(String tital) {
super(tital);
this.setBounds(100, 100, 500, 500);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//得到窗口的容器,并将窗口布局为两行两列的表格
Container container = this.getContentPane();
container.setLayout(new GridLayout(2, 2, 10, 10));//后面的两个10分别表示上下与左右间距
//创建四个面板
JPanel panel1 = new JPanel(new GridLayout(2, 1));
JPanel panel2 = new JPanel(new GridLayout(1, 2));
JPanel panel3 = new JPanel(new GridLayout(2, 2));
JPanel panel4 = new JPanel(new GridLayout(2, 3));
//往面板中添加JButton按钮
panel1.add(new JButton("1"));
panel1.add(new JButton("1"));
panel2.add(new JButton("2"));
panel2.add(new JButton("2"));
panel3.add(new JButton("3"));
panel3.add(new JButton("3"));
panel3.add(new JButton("3"));
panel3.add(new JButton("3"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
//将四个面板装进窗口容器中
container.add(panel1);
container.add(panel2);
container.add(panel3);
container.add(panel4);
//将窗口设置为可见的
this.setVisible(true);
}
}
JScrollPanel
作用
代码练习
public class JScrollPanelTest extends JFrame {//滚动面板及文本域练习
public static void main(String[] args) {
new JScrollPanelTest("滚动面板及文本域的练习");
}
public JScrollPanelTest(String title) {
super(title);
this.setBounds(100, 100, 500, 500);
//创建文本域,并设置文本域
JTextArea textArea = new JTextArea("文本域");//内容
textArea.setBounds(200, 200, 200, 300);//大小和位置
textArea.setBackground(new Color(222, 230, 225));//颜色
//创建滚动面板
JScrollPane scrollPane = new JScrollPane(textArea);
//创建窗口的容器,将滚动面板添加进窗口容器中
Container container = this.getContentPane();
container.add(scrollPane);
//设置窗口的关闭及显示等
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭
this.setVisible(true);//可见性
this.setResizable(false);//是否可拉伸
}
}
ImageIcon
作用
代码示例
public class PictureJButtons extends JFrame {//图片按钮练习
public static void main(String[] args) {
new PictureJButtons("图片按钮练习");
}
public PictureJButtons(String title) {
//创建窗口
super(title);
this.setBounds(100, 100, 500, 500);
//获得窗口的容器
Container container = this.getContentPane();
container.setLayout(null);//设置窗口布局为绝对布局
//获得图片图标
URL url = PictureJButtons.class.getResource("wechatIcon.png");
ImageIcon imageIcon = new ImageIcon(url);
//创建JButton按钮,并与图片图标相关联
JButton button = new JButton();
button.setIcon(imageIcon);
button.setBounds(230, 230, 38, 38);
//将JButton按钮放进窗口容器中
container.add(button);
//设置窗口的关闭及可见性
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
JRadioButton
作用
代码练习
public class SingleButtons extends JFrame {//单选按钮的练习
public static void main(String[] args) {
new SingleButtons("单选按钮的练习");
}
public SingleButtons(String title) {
super(title);
this.setBounds(100, 100, 500, 500);
Container container = this.getContentPane();
container.setLayout(null);
//创建单选按钮
JRadioButton leftButton = new JRadioButton("LEFT");
leftButton.setBounds(120, 230, 80, 40);
JRadioButton rightButton = new JRadioButton("CENTER");
rightButton.setBounds(230, 230, 80, 40);
JRadioButton centerButton = new JRadioButton("RIGHT");
centerButton.setBounds(340, 230, 80, 40);
//创建单选框的分组,一组之中同时只能选择一个按钮
ButtonGroup group = new ButtonGroup();
//将按钮放置进分组中
group.add(leftButton);
group.add(rightButton);
group.add(centerButton);
//将分组放进窗口容器中
container.add(leftButton);
container.add(rightButton);
container.add(centerButton);
//窗口关闭等设置
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
JCheckBox
作用
代码练习
*/
public class CheckButtons extends JFrame {//复选按钮的练习
public static void main(String[] args) {
new CheckButtons("复选按钮的练习");
}
public CheckButtons(String title) {
super(title);
this.setBounds(100, 100, 500, 500);
Container container = this.getContentPane();
container.setLayout(null);//采用绝对布局
//创建复选按钮
JCheckBox checkBox1 = new JCheckBox("选项1");
checkBox1.setBounds(150, 230, 80, 40);
JCheckBox checkBox2 = new JCheckBox("选项2");
checkBox2.setBounds(280, 230, 80, 40);
//将复选按钮放进窗口容器中
container.add(checkBox1);
container.add(checkBox2);
//窗口关闭等设置
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
JComboBox
作用
代码练习
public class DropDownBoxs extends JFrame {//下拉框的练习
public static void main(String[] args) {
new DropDownBoxs("下拉框的练习");
}
public DropDownBoxs(String title) {
super(title);
this.setBounds(100, 100, 500, 500);
Container container = this.getContentPane();
container.setLayout(null);
//创建下拉框及设置
JComboBox<String> comboBox = new JComboBox<>();
comboBox.setBounds(100, 200, 300, 30);
comboBox.setBackground(Color.cyan);
//给下拉框中添加文字
comboBox.addItem("0--20岁");
comboBox.addItem("20--30岁");
comboBox.addItem("30--50岁");
comboBox.addItem("50--70岁");
comboBox.addItem("70--100岁");
//将下拉框添加进窗口容器中
container.add(comboBox);
//窗口关闭等设置
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
JList
作用
代码练习
public class ListBoxs extends JFrame {//列表框的练习
public static void main(String[] args) {
new ListBoxs("列表框的练习");
}
public ListBoxs(String title) {
super(title);
this.setBounds(100, 100, 500, 500);
Container container = this.getContentPane();
container.setLayout(null);
//创建列表框,并与集合相关联
Vector<String> vector = new Vector<>();//创建集合
JList<String> list = new JList<>(vector);//创建列表,与集合相关联,列表中展示集合中的元素
list.setBounds(100, 100, 300, 300);
//给集合中添加元素
vector.add("ZhangSan------23");
vector.add("LiSi------24");
vector.add("WangWu------25");
vector.add("ZhaoLiu------26");
//将列表框添加进窗口容器
container.add(list);
//窗口关闭等设置
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
JTextField
作用
代码练习
public class JTextFields extends JFrame {//文本框的练习,文本框一次只能输入一行
public static void main(String[] args) {
new JTextFields("文本框的练习");
}
public JTextFields(String title) {
super(title);
this.setBounds(100, 100, 500, 500);
Container container = this.getContentPane();
container.setLayout(null);
//创建文本框
JTextField textField = new JTextField();
textField.setBounds(100, 100, 300, 30);
//将文本框与窗口容器关联
container.add(textField);
//窗口关闭等设置
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
JPasswordField
作用
代码练习
public class PasswordBoxs extends JFrame {//密码框的练习
public static void main(String[] args) {
new PasswordBoxs("密码框的练习");
}
public PasswordBoxs(String title) {
super(title);
this.setBounds(100, 100, 500, 500);
Container container = this.getContentPane();
container.setLayout(null);
//创建密码框
JPasswordField passwordBox = new JPasswordField("我是密码框");
passwordBox.setBounds(100, 100, 300, 30);
//将用户输入的字符样式更改为指定的字符
//passwordBox.setEchoChar('*');
//将密码框添加进窗口容器中
container.add(passwordBox);
//窗口关闭等设置
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
JTextArea
作用
代码练习
public class TextAreas extends JFrame {//文本域的练习
public static void main(String[] args) {
new TextAreas("文本域的练习");
}
public TextAreas(String title) {
super(title);
this.setBounds(100, 100, 500, 500);
Container container = this.getContentPane();
container.setLayout(null);
//创建文本域
TextArea textArea = new TextArea("文本域");
textArea.setBounds(100, 100, 300, 300);
//将文本域添加进窗口容器中
container.add(textArea);
//窗口关闭等设置
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}