GUI编程学习资料

GUI编程学习资料

组件

GUI核心技术:AWT、Swing

  • 窗口

  • 弹窗

  • 面板

  • 文本框

  • 列表框

  • 按钮

  • 图片

  • 监听事件

  • 鼠标

  • 键盘事件

  • 外挂

  • 破解工具

AWT

Abstract Window Tool:底层实现

  1. 包含了很多类和接口! GUI!

  2. 元素:窗口、按钮、文本框

  3. java.awt

  4. 组件:button、TextArea、Label、Window、Panel、Frame、Dialog、Applet...

组件和容器
Frame

顶级窗口(总窗口)

import java.awt.*;
​
//GUI图形界面创建(总窗口)
public class TestFrame {
    public static void main(String[] args) {
        //Frame
        Frame frame = new Frame("JAVA图形界面窗口");
​
        //设置可见性
        frame.setVisible(true);
​
        //设置窗口大小
        frame.setSize(400,300);
​
        //设置背景颜色
        frame.setBackground(new Color(255, 255, 139));
​
        //设置窗口位置
        frame.setLocation(400,400);
​
        //设置大小固定
        frame.setResizable(false);
​
    }
}

Panel

面板:panel无法单独显示,必须添加到某个容器中

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
​
//Panel 可以看成是一个空间,但是不能单独存在
public class TestPanel {
    public static void main(String[] args) {
        Frame frame = new Frame("TestPanel");
​
        Panel panel = new Panel();
​
        //设置布局
        frame.setLayout(null);
​
        //设置窗口坐标和大小(相对于屏幕)
        frame.setBounds(400,400,400,300);
        //设置面板坐标和大小(相对于frame)
        panel.setBounds(50,50,200,150);
​
        //设置窗口背景颜色
        frame.setBackground(Color.white);
        //设置面板背景颜色
        panel.setBackground(Color.yellow);
​
        //给窗口添加面板
        frame.add(panel);
​
        //设置窗口可见性
        frame.setVisible(true);
​
        //监听窗口关闭事件(适配器模式)
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                //结束程序
                System.exit(0);
            }
        });
    }
}

Layout

布局管理器:有流式布局、东西南北中布局、表格布局

import java.awt.*;
​
//1.流式布局(从左到右依次排开)
public class TestFlowLayout {
    public static void main(String[] args) {
        Frame frame = new Frame("TestFlowLayout");
​
        //组件-按钮
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");
​
        //将窗口设置为东西南北中布局
        frame.setLayout(new FlowLayout(FlowLayout.RIGHT));
​
        //设置窗口大小
        frame.setSize(400,400);
​
        //设置窗口位置
        frame.setLocation(500,500);
​
​
        //将按钮添加到窗口中
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
​
        //设置窗口可见性
        frame.setVisible(true);
​
    }
}
​
======================================================================
​
import java.awt.*;
//2.东西南北中布局
public class TestBorderLayout {
    public static void main(String[] args) {
        Frame frame = new Frame("TestBorderLayout");
​
        //按钮
        Button button1 = new Button("East");
        Button button2 = new Button("West");
        Button button3 = new Button("South");
        Button button4 = new Button("North");
        Button button5 = new Button("Center");
​
        //将按钮添加到窗口中
        frame.add(button1, BorderLayout.EAST);
        frame.add(button2, BorderLayout.WEST);
        frame.add(button3, BorderLayout.SOUTH);
        frame.add(button4, BorderLayout.NORTH);
        frame.add(button5, BorderLayout.CENTER);
​
        //设置窗口位置
        frame.setLocation(500,500);
​
        //设置窗口大小
        frame.setSize(500,500);
​
        //设置窗口可见性
        frame.setVisible(true);
    }
}
​
======================================================================
​
import java.awt.*;
//表格布局
public class TestGridLayout {
    public static void main(String[] args) {
        Frame frame = new Frame("TestGridLayout");
​
        //按钮
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");
        Button button4 = new Button("button4");
        Button button5 = new Button("button5");
        Button button6 = new Button("button6");
​
        //将窗口设置为表格布局
        frame.setLayout(new GridLayout(2,3));
​
        //将按钮添加到窗口中(自动填充)
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        frame.add(button4);
        frame.add(button5);
        frame.add(button6);
​
        //自动布局(Java函数)
        //frame.pack();
​
        //设置窗口位置和大小
        frame.setBounds(500,500,500,500);
​
        //设置窗口可见性
        frame.setVisible(true);
    }
}

布局可以交叉使用

import java.awt.*;
​
//绘制布局:
//上部:左右各一个button,中间两个呈上下结构的button
//下部:左右各一个button,中间四个呈两行两列的button
public class LayoutDemo {
    public static void main(String[] args) {
        //总frame
        Frame frame = new Frame("LayoutDemo");
        frame.setSize(500,500);//设置窗口大小
        frame.setLocation(500,500);//设置窗口位置
        frame.setBackground(Color.YELLOW);//设置窗口颜色
        frame.setVisible(true);//设置窗口可见性
        frame.setLayout(new GridLayout(2,1));//设置两行一列的表格布局
​
        //4个面板
        Panel panel1 = new Panel(new BorderLayout());
        Panel panel2 = new Panel(new GridLayout(2,1));
        Panel panel3 = new Panel(new BorderLayout());
        Panel panel4 = new Panel(new GridLayout(2,1));
​
        //10个button
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");
        Button button4 = new Button("button4");
        Button button5 = new Button("button5");
        Button button6 = new Button("button6");
        Button button7 = new Button("button7");
        Button button8 = new Button("button8");
        Button button9 = new Button("button9");
        Button button10 = new Button("button10");
​
        //上部
        panel1.add(button1,BorderLayout.WEST);
        panel2.add(button2);
        panel2.add(button3);
        panel1.add(button4,BorderLayout.EAST);
        panel1.add(panel2,BorderLayout.CENTER);
​
        //下部
        panel3.add(button5,BorderLayout.WEST);
        panel4.add(button6);
        panel4.add(button7);
        panel4.add(button8);
        panel4.add(button9);
        panel3.add(button10,BorderLayout.EAST);
        panel3.add(panel4,BorderLayout.CENTER);
​
        //将面板放入窗口中
        frame.add(panel1);
        frame.add(panel3);
​
    }
}

Listener

监听事件:按下按钮,触发一些事件

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
​
//按下按钮,触发一些事件
public class TestListener {
    public static void main(String[] args) {
        //主窗口
        Frame frame = new Frame("TestListener");
        frame.setBounds(500,500,500,500);
        frame.setVisible(true);
​
        //按钮
        Button button = new Button("button");
​
        //给按钮添加监听事件
        MyActionListener listener = new MyActionListener();
        button.addActionListener(listener);
​
        //将按钮添加到主窗口中
        frame.add(button,BorderLayout.CENTER);
​
        //窗体关闭
        windowClose(frame);
    }
​
    //关闭窗体事件
    private static void windowClose(Frame frame){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
​
}
​
//监听事件
class MyActionListener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("您点击了button");
    }
}

同一个事件也可以被多个按钮触发

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//同一个事件被多个按钮触发(实现监听事件通用)
public class TestMonitor {
    public static void main(String[] args) {
        //主窗口
        Frame frame = new Frame("TestMonitor");
        frame.setBounds(500,500,500,500);
        frame.setVisible(true);
​
        //按钮
        Button button1 = new Button("start");
        Button button2 = new Button("end");
​
        //给按钮添加监听事件
        MyMonitor monitor = new MyMonitor();
        button1.addActionListener(monitor);
        button2.addActionListener(monitor);
​
        //将按钮添加到窗口中
        frame.add(button1,BorderLayout.NORTH);
        frame.add(button2,BorderLayout.SOUTH);
​
    }
}
​
//监听事件
class MyMonitor implements ActionListener {
​
    @Override
    public void actionPerformed(ActionEvent e) {
        if("start".equals(e.getActionCommand())){
            System.out.println("点击了:start");
        }else {
            System.out.println("点击了:end");
        }
    }
}

输入框监听事件

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
​
//输入框监听事件
public class TestText {
    public static void main(String[] args) {
        new MyFrame1();
    }
}
​
//主窗口
class MyFrame1 extends Frame{
    public MyFrame1(){
        //文本框
        TextField textField = new TextField();
        add(textField);
​
        //监听文本框输入的文字
        MyMonitor1 monitor = new MyMonitor1();
        textField.addActionListener(monitor);
​
        //设置替换编码(例如密码之类)
        textField.setEchoChar('*');
​
        setBounds(500,500,500,500);//设置窗口大小和位置
        setVisible(true);//设置窗口可见性
​
    }
}
​
//输入框监听事件
class MyMonitor1 implements ActionListener{
​
    @Override
    public void actionPerformed(ActionEvent e) {
        TextField textField = (TextField) e.getSource();//获得资源
        System.out.println(textField.getText());//获得文本框的文本
        textField.setText("");//清空文本框
    }
}

简易计算器

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.TextEvent;
//主方法
public class TestCal {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
    }
}
​
//计算器类
class Calculator extends Frame {
    public Calculator(){
        //三个文本框
        TextField text1 = new TextField(10);//字符数
        TextField text2 = new TextField(10);//字符数
        TextField text3 = new TextField(20);//字符数
​
        //一个按钮,给按钮添加监听事件
        Button button = new Button("=");
        CalculatorMonitor monitor = new CalculatorMonitor(text1,text2,text3);
        button.addActionListener(monitor);
​
        //一个标签
        Label label = new Label("+");
​
        //布局
        setLayout(new FlowLayout());
​
        //将组件放入主窗口中:
        add(text1);
        add(label);
        add(text2);
        add(button);
        add(text3);
​
        setBounds(500,500,500,500);//设置窗口位置和大小
        setVisible(true);//设置窗口可见性
    }
}
​
​
//监听器类
class CalculatorMonitor implements ActionListener{
    //获取三个变量
    private TextField text1,text2,text3;
​
    //构造器
    public CalculatorMonitor(TextField text1, TextField text2, TextField text3){
        this.text1 = text1;
        this.text2 = text2;
        this.text3 = text3;
    }
​
    //运算方法
    @Override
    public void actionPerformed(ActionEvent e) {
        //1.获得加数和被加数
        int num1 = Integer.parseInt(text1.getText());
        int num2 = Integer.parseInt(text2.getText());
​
        //2.将运算后的值放入第三个框
        text3.setText(num1+num2+"");
​
        //3.清除前两个框
        //text1.setText("");
        //text2.setText("");
​
    }
}

Paint

画笔

import java.awt.*;

public class TestPaint {
    public static void main(String[] args) {
        MyPaint paint = new MyPaint();
        paint.loadFrame();
    }
}

class MyPaint extends Frame{
    public void loadFrame(){
        setBounds(500,500,500,500);//设置窗口位置和大小
        setVisible(true);//设置窗口可见性
    }

    //画笔
    @Override
    public void paint(Graphics g) {
        //画一个圆
        g.setColor(Color.red);//画笔颜色
        g.drawOval(50,50,50,50);

        //画一个实心圆
        g.setColor(Color.green);//画笔颜色
        g.fillOval(100,50,50,50);

        //画一个矩形
        g.setColor(Color.yellow);//画笔颜色
        g.fillRect(150,50,50,50);
    }
}

MouseListener

鼠标监听事件

import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Iterator;
//主方法
public class TestMouseListener {
    public static void main(String[] args) {
        MouseFrame mouse = new MouseFrame("鼠标监听事件");
    }
}

//鼠标监听
class MouseFrame extends Frame{

    ArrayList points;//存储鼠标点击的点

    public MouseFrame(String title){
        super(title);
        setBounds(500,500,500,500);
        setVisible(true);

        points = new ArrayList();

        //添加鼠标监听器
        this.addMouseListener(new MouseListener());
    }

    @Override
    public void paint(Graphics g) {
        //画画,监听鼠标事件
        Iterator iterator = points.iterator();
        while (iterator.hasNext()){
            Point point = (Point) iterator.next();
            g.setColor(Color.red);
            g.fillOval(point.x,point.y,10,10);
        }
    }

    //添加一个点到窗口中
    public void addPaint(Point point){
        points.add(point);
    }

    //鼠标监听事件(适配器模式)
    private class MouseListener extends MouseAdapter{
        //鼠标按下
        @Override
        public void mousePressed(MouseEvent e) {
            MouseFrame mouse = (MouseFrame) e.getSource();

            //鼠标的点
            Point point = new Point(e.getX(), e.getY());

            //在窗口中添加点
            mouse.addPaint(point);

            //刷新
            mouse.repaint();

        }
    }
}

WindowListener

窗口监听事件

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//主方法
public class TestWindowListener {
    public static void main(String[] args) {
        WindowFrame frame = new WindowFrame();
    }
}

//窗口监听
class WindowFrame extends Frame{
    public WindowFrame(){
        setBounds(500,500,500,500);
        setBackground(Color.white);
        setVisible(true);
        addWindowListener(new WindowListener());
    }

    //窗口监听事件
    class WindowListener extends WindowAdapter{

        //窗口打开
        @Override
        public void windowOpened(WindowEvent e) {
            System.out.println("windowOpened");
        }

        //窗口正在关闭
        @Override
        public void windowClosing(WindowEvent e) {
            System.out.println("windowClosing");
        }

        //窗口已关闭
        @Override
        public void windowClosed(WindowEvent e) {
            System.out.println("windowClosed");
        }

        @Override
        public void windowIconified(WindowEvent e) {
            System.out.println("windowIconified");
        }

        @Override
        public void windowDeiconified(WindowEvent e) {
            System.out.println("windowDeiconified");
        }

        //窗口被激活
        @Override
        public void windowActivated(WindowEvent e) {
            System.out.println("windowActivated");
        }

        @Override
        public void windowDeactivated(WindowEvent e) {
            System.out.println("windowDeactivated");
        }

        //状态改变
        @Override
        public void windowStateChanged(WindowEvent e) {
            System.out.println("windowStateChanged");
        }

        @Override
        public void windowGainedFocus(WindowEvent e) {
            System.out.println("windowGainedFocus");
        }

        @Override
        public void windowLostFocus(WindowEvent e) {
            System.out.println("windowLostFocus");
        }
    }

}

KeyboardListener

键盘监听事件

import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
//主方法
public class TestKeyboardListener {
    public static void main(String[] args) {
        KeyboardFrame frame = new KeyboardFrame();
    }
}

//键盘监听
class KeyboardFrame extends Frame{
    public KeyboardFrame(){
        setBounds(500,500,500,500);
        setVisible(true);

        KeyboardListener listener = new KeyboardListener();
        addKeyListener(listener);
    }

    //键盘监听事件
    class KeyboardListener extends KeyAdapter{

        @Override
        public void keyTyped(KeyEvent e) {
            System.out.println("keyTyped");
        }

        @Override
        public void keyPressed(KeyEvent e) {
            System.out.println("按下了"+e.getKeyCode());
        }

        @Override
        public void keyReleased(KeyEvent e) {
            System.out.println("松开了"+e.getKeyCode());
        }
    }
}

Swing
主窗口

JFrame:主窗口

import javax.swing.*;
import java.awt.*;
//主方法
public class JFrameDemo extends JFrame {
    public static void main(String[] args) {
        JFrameDemo jFrameDemo = new JFrameDemo("JFrame窗口");
        jFrameDemo.init();
    }

    public JFrameDemo(String title){
        super(title);
    }

    //初始化
    public void init(){
        //设置窗口位置和大小
        setBounds(500,500,500,500);
        //设置窗口可见性
        setVisible(true);

        //获得一个容器
        Container container = this.getContentPane();
        //设置容器颜色
        container.setBackground(Color.yellow);

        //JLabel
        JLabel jLabel = new JLabel("JLabel");
        //设置Jlabel居中
        jLabel.setHorizontalAlignment(SwingConstants.CENTER);

        //将JLabel添加到主窗口中
        this.add(jLabel);

        //窗口关闭事件
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

弹窗

弹窗(JDialog):默认就有窗口关闭事件

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

//窗口弹窗
public class DialogDemo extends JFrame {
    public static void main(String[] args) {
        DialogDemo dialogDemo = new DialogDemo("窗口弹窗");
    }

    //构造器
    public DialogDemo(String title){
        super(title);
        this.setBounds(500,500,500,500);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//窗口关闭

        //Jrame容器(主窗口)
        Container container = this.getContentPane();

        //绝对布局
        container.setLayout(null);

        //按钮
        JButton jButton = new JButton("点击即可弹窗");
        jButton.setBounds(50,50,300,50);

        //点击按钮弹出弹窗
        DialogListener listener = new DialogListener();
        jButton.addActionListener(listener);

        //将按钮添加到主窗口中
        container.add(jButton);

        
    }
}

//弹窗监听事件
class DialogListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        //弹窗
        new DiaLogWindow();
    }
}

//弹窗窗口
class DiaLogWindow extends JDialog{

    public DiaLogWindow() {
        this.setBounds(100,100,500,500);
        this.setVisible(true);

        //JFrame容器(窗口)
        Container container = this.getContentPane();
        //绝对布局
        container.setLayout(null);

        //Label
        Label label = new Label("hello,world !!!");
        label.setBounds(50,50,300,50);

        //将Label添加到弹窗窗口中
        container.add(label);

    }
}

普通图标

Icon

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

public class IconDemo extends JFrame implements Icon {
    public static void main(String[] args) {
        IconDemo iconDemo = new IconDemo(50,50);
        iconDemo.init();
    }

    private int width;  //Icon宽
    private int height;//Icon高

    //无参构造
    public IconDemo(int width, int height){
        this.width = width;
        this.height = height;
    }

    //初始化
    public void init(){
        IconDemo iconDemo = new IconDemo(width,height);

        //将图标放在一个标签上
        JLabel jLabel = new JLabel("Icon", iconDemo, SwingConstants.CENTER);

        Container container = this.getContentPane();
        container.add(jLabel);

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


    @Override
    public void paintIcon(Component c, Graphics g, int x, int y) {
        g.fillOval(x,y,width,height);
    }

    @Override
    public int getIconWidth() {
        return this.width;
    }

    @Override
    public int getIconHeight() {
        return this.height;
    }
}

图片图标

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

public class ImageIconDemo extends JFrame {
    public static void main(String[] args) {
        ImageIconDemo imageIconDemo = new ImageIconDemo();
    }

    public ImageIconDemo(){

        JLabel jLabel = new JLabel("ImageIcon");//创建一个Label用于存放Icon
        URL url = ImageIconDemo.class.getResource("LOL.png");//获取图片地址
        ImageIcon icon = new ImageIcon(url);//创建ImageIcon
        jLabel.setIcon(icon);//将icon放入Label中
        jLabel.setHorizontalAlignment(SwingConstants.CENTER);//设置Label居中

        Container container = this.getContentPane();//获取窗口容器
        container.add(jLabel);//将Label(Icon)添加到容器中

        //设置窗口属性
        setBounds(500,500,500,500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

面板

JPanel

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

public class JPanelDemo extends JFrame {
    public static void main(String[] args) {
        JPanelDemo jPanel = new JPanelDemo();
    }

    public JPanelDemo(){
        //获取窗口容器
        Container container = this.getContentPane();
        container.setLayout(new GridLayout(2,1,10,10));

        //创建面板
        JPanel panel1 = new JPanel(new GridLayout(1,3));
        JPanel panel2 = new JPanel(new GridLayout(2,4));
        JPanel panel3 = new JPanel(new GridLayout(3,2));

        //给面板添加button
        panel1.add(new JButton("1.1"));
        panel1.add(new JButton("1.2"));
        panel1.add(new JButton("1.3"));
        panel2.add(new JButton("2.1"));
        panel2.add(new JButton("2.2"));
        panel2.add(new JButton("2.3"));
        panel2.add(new JButton("2.4"));
        panel3.add(new JButton("3.1"));
        panel3.add(new JButton("3.2"));

        //把面板放入容器中
        container.add(panel1);
        container.add(panel2);
        container.add(panel3);

        //设置窗口属性
        setBounds(500,500,500,500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);


    }
}

滚动条面板

JScroll

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

public class JScrollDemo extends JFrame {
    public static void main(String[] args) {
        JScrollDemo demo = new JScrollDemo();
    }

    public JScrollDemo(){
        //获取窗口容器
        Container container = this.getContentPane();

        //文本域
        JTextArea jTextArea = new JTextArea(10,50);
        jTextArea.setText("君王死社稷,天子守国门");

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

        //将面板放入容器中
        container.add(jScrollPane);

        //设置窗口属性
        setBounds(500,500,500,500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

图片按钮

JButton

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

public class JButtonDemo extends JFrame {
    public static void main(String[] args) {
        JButtonDemo demo = new JButtonDemo();
    }

    public JButtonDemo(){
        //获取容器
        Container container = this.getContentPane();

        //将一个图片变为图标
        URL url = JButtonDemo.class.getResource("LOL.png");
        Icon icon = new ImageIcon(url);

        //将这个图标放到一个button上
        JButton button = new JButton();
        button.setIcon(icon);
        button.setToolTipText("图片按钮");

        //将按钮添加到容器上
        container.add(button);

        //设置窗口属性
        setBounds(500,500,500,500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

单选框

JRadioButton

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

public class JRadioButtonDemo extends JFrame {
    public static void main(String[] args) {
        JRadioButtonDemo demo = new JRadioButtonDemo();
    }

    public JRadioButtonDemo(){
        //获取容器
        Container container = this.getContentPane();

        //创建单选框
        JRadioButton button1 = new JRadioButton("button1");
        JRadioButton button2 = new JRadioButton("button2");
        JRadioButton button3 = new JRadioButton("button3");

        //由于单选框只能选择一个,需要分组,一个组中只能选择一个
        ButtonGroup group = new ButtonGroup();
        group.add(button1);
        group.add(button2);
        group.add(button3);

        //将单选框添加到容器中
        container.add(button1,BorderLayout.NORTH);
        container.add(button2,BorderLayout.CENTER);
        container.add(button3,BorderLayout.SOUTH);

        //设置窗口属性
        setBounds(500,500,500,500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    }
}

多选框

JCheckBoxButton

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

public class JCheckBoxButtonDemo extends JFrame {
    public static void main(String[] args) {
        JCheckBoxButtonDemo demo = new JCheckBoxButtonDemo();
    }

    public JCheckBoxButtonDemo(){
        //获取容器
        Container container = this.getContentPane();

        //多选框
        JCheckBox checkBox1 = new JCheckBox("论语");
        JCheckBox checkBox2 = new JCheckBox("孟子");
        JCheckBox checkBox3 = new JCheckBox("大学");
        JCheckBox checkBox4 = new JCheckBox("中庸");

        //将多选框添加到容器中
        container.add(checkBox1,BorderLayout.WEST);
        container.add(checkBox2,BorderLayout.CENTER);
        container.add(checkBox3,BorderLayout.EAST);
        container.add(checkBox4,BorderLayout.SOUTH);

        //设置窗口属性
        setBounds(500,500,500,500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

下拉框

Combobox

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

public class ComboboxDemo extends JFrame {
    public static void main(String[] args) {
        ComboboxDemo demo = new ComboboxDemo();
    }

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

        JComboBox comboBox = new JComboBox();

        comboBox.addItem("诗经");
        comboBox.addItem("尚书");
        comboBox.addItem("礼记");
        comboBox.addItem("易经");
        comboBox.addItem("乐经");
        comboBox.addItem("春秋");

        container.add(comboBox);

        setBounds(500,500,500,500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    }

}

列表框

JList

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

public class JListDemo extends JFrame {
    public static void main(String[] args) {
        JListDemo demo = new JListDemo();
    }

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

        //列表内容
        String[] contents = {"针灸大成","黄帝内经","神农本草经","伤寒杂病论","金匮要论"};

        //列表
        JList jList = new JList(contents);

        container.add(jList);

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

文本框

JTextField

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

public class JTextFieldDemo extends JFrame {
    public static void main(String[] args) {
        JTextFieldDemo demo = new JTextFieldDemo();
    }

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

        JTextField textField = new JTextField("Hello world !!!");

        container.add(textField);

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

    }
}

密码框

JPasswordField

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

public class JPasswordFieldDemo extends JFrame {
    public static void main(String[] args) {
        JPasswordFieldDemo demo = new JPasswordFieldDemo();
    }

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

        JPasswordField passwordField = new JPasswordField("7362514");
        passwordField.setEchoChar('*');

        container.add(passwordField);

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

文本域

参照滚动条面板

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值