Java -- GUI编程之Swing编程

1、窗口 – JFrame

package com.wgh.lesson04;

import javax.swing.*;

public class JFrameDemo {
    // 初始化
    public void init(){
        JFrame jFrame = new JFrame("窗口");
        jFrame.setBounds(100, 100, 200, 200);
        jFrame.setVisible(true);

        // 关闭事件
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new JFrameDemo().init();
    }
}

2、标签 – JLabel

package com.wgh.lesson04;

import javax.swing.*;
import java.awt.*;

public class JFrameDemo02 {
    public static void main(String[] args) {
        new MyJFrame().init();
    }
}

class MyJFrame extends JFrame {

    public void init(){
        this.setVisible(true);
        this.setBounds(100, 100, 200, 200);

        JLabel jlabel = new JLabel("Java Swing 编程");

		// 添加标签
        this.add(jlabel);
        // 将标签放在中间位置
        jlabel.setHorizontalAlignment(SwingConstants.CENTER);

        // Swing编程需要一个容器来设置界面的一些东西
        Container contentPane = this.getContentPane();
        contentPane.setBackground(Color.CYAN);

        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

3、弹窗 – Dialog

package com.wgh.lesson04;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class DialogDemo extends JFrame {

    public DialogDemo(){
        this.setVisible(true);
        this.setBounds(100, 100, 200, 200);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JButton jButton = new JButton("点击弹出一个窗口");
        jButton.setBounds(10, 10, 200, 100);

        Container container = this.getContentPane();
        container.setLayout(null); // 设置绝对布局
        container.add(jButton);
		
		// 点击需要监听
        // 点击这个按钮的时候,弹出一个弹窗
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                new MyDialog();
            }
        });
    }

    public static void main(String[] args) {
        new DialogDemo();
    }
}

// 弹窗的窗口
class MyDialog extends JDialog {
    public MyDialog(){
        this.setVisible(true);
        this.setBounds(200, 200, 200, 200);

        Container container = this.getContentPane();

        JLabel jlabel = new JLabel("Java Swing 编程");
        jlabel.setHorizontalAlignment(SwingConstants.CENTER);

        container.add(jlabel);
        container.setBackground(Color.CYAN);
    }
}

4、图片和标签 – Icon & JLabel

package com.wgh.lesson04;

import javax.swing.*;
import java.awt.*;
import java.net.URL;

public class IconDemo extends JFrame {

    public IconDemo(){
        JLabel jLabel = new JLabel("imageIcon");
        // 获取图片的地址 -- 获取当前类的下面的同级资源
        // IMG_0246.jpeg位于com.wgh.lesson04下
        // 将图片变为图标
        URL url = IconDemo.class.getResource("IMG_0246.jpeg");
        ImageIcon imageIcon = new ImageIcon(url);
        // 将图片放在标签中
        jLabel.setIcon(imageIcon);
        // 居中
        jLabel.setHorizontalAlignment(SwingConstants.CENTER);

        // 所有的东西都放在container中
        Container container = getContentPane();
        container.add(jLabel);

        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE) ;
    }

    public static void main(String[] args) {
        new IconDemo();
    }
}

5、面板 – JPanel

package com.wgh.lesson05;

import javax.swing.*;
import java.awt.*;

public class JPanelDemo extends JFrame {

    public JPanelDemo(){
        Container container = getContentPane();
        // 两行两列,上下间隔10
        container.setLayout(new GridLayout(2, 2, 10, 10));

        JPanel jPanel1 = new JPanel(new GridLayout(1, 3));
        JPanel jPanel2 = new JPanel(new GridLayout(1, 2));
        JPanel jPanel3 = new JPanel(new GridLayout(2, 1));
        JPanel jPanel4 = new JPanel(new GridLayout(3, 2));

        // add一个Button就会往面板里面塞
        jPanel1.add(new JButton("1"));
        jPanel1.add(new JButton("1"));
        jPanel1.add(new JButton("1"));

        jPanel2.add(new JButton("2"));
        jPanel2.add(new JButton("2"));

        jPanel3.add(new JButton("3"));
        jPanel3.add(new JButton("3"));

        jPanel4.add(new JButton("4"));
        jPanel4.add(new JButton("4"));
        jPanel4.add(new JButton("4"));
        jPanel4.add(new JButton("4"));
        jPanel4.add(new JButton("4"));
        jPanel4.add(new JButton("4"));

        container.add(jPanel1);
        container.add(jPanel2);
        container.add(jPanel3);
        container.add(jPanel4);

        this.setVisible(true);
        this.setSize(500, 500);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new JPanelDemo();
    }
}

含有滚动条的面板

package com.wgh.lesson05;

import javax.swing.*;
import java.awt.*;

public class JScrollDemo extends JFrame {

    public JScrollDemo(){
        Container container = getContentPane();

        // 文本域
        JTextArea jTextArea = new JTextArea(20, 50);
        jTextArea.setText("Java Swing");

        // JScroll面板
        JScrollPane jScrollPane = new JScrollPane(jTextArea);
        container.add(jScrollPane);

        this.setVisible(true);
        this.setBounds(100, 100, 300, 350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new JScrollDemo();
    }
}

6、按钮 – JButton

package com.wgh.lesson05;

import javax.swing.*;
import java.awt.*;
import java.net.URL;

public class JButtonDemo01 extends JFrame {

    public JButtonDemo01(){
        Container container = this.getContentPane();
        // 将图片变为一个图标
        URL url = JButtonDemo01.class.getResource("IMG_0246.jpeg");
        ImageIcon imageIcon = new ImageIcon(url);
        // 把这个图标放在按钮上
        JButton jButton = new JButton();
        jButton.setIcon(imageIcon);
        jButton.setToolTipText("图片按钮");

        container.add(jButton);

        this.setVisible(true);
        this.setBounds(100, 100, 300, 350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new JButtonDemo01();
    }
}

单选框,按钮

package com.wgh.lesson05;

import javax.swing.*;
import java.awt.*;

// 单选框
public class JButtonDemo02 extends JFrame {

    public JButtonDemo02(){
        Container container = this.getContentPane();

        JRadioButton radioButton1 = new JRadioButton("radioButton1");
        JRadioButton radioButton2 = new JRadioButton("radioButton2");
        JRadioButton radioButton3 = new JRadioButton("radioButton3");

        // 由于单选框只能选一个,需要使用分组使一个组只能选一个
        ButtonGroup buttonGroup = new ButtonGroup();
        buttonGroup.add(radioButton1);
        buttonGroup.add(radioButton2);
        buttonGroup.add(radioButton3);

        container.add(radioButton1, BorderLayout.CENTER);
        container.add(radioButton2, BorderLayout.NORTH);
        container.add(radioButton3, BorderLayout.SOUTH);

        this.setVisible(true);
        this.setBounds(100, 100, 300, 350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new JButtonDemo02();
    }
}

多选框按钮

 package com.wgh.lesson05;

import javax.swing.*;
import java.awt.*;

// 单选框
public class JButtonDemo03 extends JFrame {

    public JButtonDemo03(){
        Container container = this.getContentPane();

        // 多选框
        JCheckBox jCheckBox1 = new JCheckBox("jCheckBox1");
        JCheckBox jCheckBox2 = new JCheckBox("jCheckBox2");

        container.add(jCheckBox1, BorderLayout.SOUTH);
        container.add(jCheckBox2, BorderLayout.NORTH);

        this.setVisible(true);
        this.setBounds(100, 100, 300, 350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new JButtonDemo03();
    }
}

7、列表

下拉框应用场景 – 选择地区,或者一些单个选项
列表 – 展示信息,一般是动态扩容

  • 下拉框
package com.wgh.lesson05;

import javax.swing.*;
import java.awt.*;

public class DropDownBoxDemo01 extends JFrame {

    public DropDownBoxDemo01(){
        Container container = this.getContentPane();

        // 下拉框
        JComboBox comboBox = new JComboBox();

        comboBox.addItem(null);
        comboBox.addItem("1");
        comboBox.addItem("2");
        comboBox.addItem("3");

        container.add(comboBox);

        this.setVisible(true);
        this.setBounds(100, 100, 300, 350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new DropDownBoxDemo01();
    }
} 
  • 列表框
package com.wgh.lesson05;

import javax.swing.*;
import java.awt.*;

public class DropDownBoxDemo01 extends JFrame {

    public DropDownBoxDemo01(){
        Container container = this.getContentPane();

        // 下拉框
        JComboBox comboBox = new JComboBox();

        comboBox.addItem(null);
        comboBox.addItem("1");
        comboBox.addItem("2");
        comboBox.addItem("3");

        container.add(comboBox);

        this.setVisible(true);
        this.setBounds(100, 100, 300, 350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new DropDownBoxDemo01();
    }
}

8、文本框

  • 文本框
package com.wgh.lesson06;

import javax.swing.*;
import java.awt.*;

public class TestTextDemo01 extends JFrame {

    public TestTextDemo01(){
        Container container = this.getContentPane();

        // 文本框
        JTextField jTextField1 = new JTextField("hello");
        JTextField jTextField2 = new JTextField("world", 20);

        container.add(jTextField1, BorderLayout.NORTH);
        container.add(jTextField2, BorderLayout.SOUTH);

        this.setVisible(true);
        this.setBounds(100, 100, 300, 350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new TestTextDemo01();
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值