学习java的第四十四天,GUI编程Swing窗体的使用

一、Swing

1.1、窗口、面板(Swing之JFrame窗体)

  • 1、窗口
package src.com.lesson04;

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

//顶级窗口1
public class JFrameDemo01 {

    public static void main(String[] args) {
        new MyJFrame().init();
    }
}
class MyJFrame {
    //初始化方法
    public void init(){
        JFrame jf = new JFrame("这是一个顶级窗口");
        jf.setVisible(true); //可见性
        jf.setBounds(20,20,233,333);  //行高
        JLabel jLabel = new JLabel();
        jLabel.setText("欢迎来到小白系列节目!");
        jf.add(jLabel);//将标签添加到窗口中
        //关闭事件
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

结果图

在这里插入图片描述

  • 2、标签居中
package src.com.lesson04;

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

//测试使用顶级窗口2
public class JFrameDemo02 {
    public static void main(String[] args) {
        new MyJFrame2().init();
    }
}
class MyJFrame2 extends JFrame{
    public MyJFrame2(){
        super("这是一个顶级窗口哦!");
    }
    public void init(){

        setBounds(20,20,200,300);
        setVisible(true);  //设置可见度
        JLabel jLabel = new JLabel("这是一个标签哦!");
        //让文本标签居中,设置水平居中对齐
        jLabel.setHorizontalAlignment(SwingConstants.CENTER);  //设置水平位置
        add(jLabel);

        //获得一个容器
        Container container = this.getContentPane();
        container.setBackground(Color.GREEN);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  //关闭窗口的方法
    }


}

结果图
在这里插入图片描述

1.2、弹窗(JDialog)

package src.com.lesson04;

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

//弹窗效果
//弹窗类
class MyDialogDemo02 extends JDialog{
    public MyDialogDemo02() {
        setTitle("这是一个弹窗");
        setVisible(true);  //可见性
        setBounds(100,100,400,500);
        JLabel label = new JLabel("糖糖带大家学习GUI编程");
        this.add(label);  //将标签添加到弹窗的窗口
        label.setHorizontalAlignment(SwingConstants.CENTER);  //设置标签水平对齐  居中
        Container container = this.getContentPane();  //添加容器
        container.add(label); //将标签添加到容器中
        container.setBackground(Color.cyan);   //容器颜色为天蓝色
    }
}
//本类,窗口类
public class DialogDemo02 extends JFrame {
    public DialogDemo02() {
        setTitle("这是一个主窗口");
        setVisible(true);
        setBounds(200,300,500,600);
        //关闭窗口
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        //按钮
        JButton button = new JButton("点击按钮获得弹窗");
        button.setBounds(30,30,200,30); //按钮出现的经纬跟宽高
        button.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                new MyDialogDemo02();
            }
        });
        this.setLayout(null);  //绝对布局
        this.add(button);  //将按钮添加到窗口中


    }

    //执行方法体
    public static void main(String[] args) {
        new DialogDemo02();
    }
}

结果图

在这里插入图片描述

1.3、标签(Icon、ImageIcon)

package src.com.lesson04;

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

//测试图片放置到标签中
public class ImageIconDemo03 {
    public static void main(String[] args) {
        new Imagetest();
    }
}

class Imagetest extends JFrame{
    public Imagetest(){

        //创建标签
        JLabel label = new JLabel("这是一个图像");
        //添加相对路径图片
        URL url = Imagetest.class.getResource("tx.jpg");
        //将图片放到图标中
        ImageIcon imageIcon = new ImageIcon(url);
        //将图标放到标签中
        label.setIcon(imageIcon);

        //添加容器
        Container container = getContentPane();
        //将标签放到容器中
        container.add(label);
        //程序退出
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        //设置窗口可见性
        setVisible(true);
        //窗口大小
        setBounds(100,100,800,800);

    }
}


结果图

在这里插入图片描述

1.4、面板(JScroll)

  • JScroll面板能实现滚动条!默认出现!!!
package src.com.lesson05;

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

public class JScrollDemo01 extends JFrame {
    public JScrollDemo01(){
        Container container = this.getContentPane();

        //文本域
        JTextArea textArea = new JTextArea(20, 50);
        textArea.setText("欢迎学习java");

        //Scroll面板
        JScrollPane scrollPane = new JScrollPane(textArea);
        container.add(scrollPane);  //将文本域添加ScroLL面板

        this.setVisible(true);  //可见性
        this.setBounds(100,100,300,350);  //设置出现的位置等
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  //退出程序

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

    }
}

结果图
在这里插入图片描述

1.5、按钮

  • 图片按钮
package src.com.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("tx.jpg");

        //将图片修改成图标
        ImageIcon imageIcon = new ImageIcon(url);

        //将图标放到按钮上
        JButton button = new JButton();
        button.setIcon(imageIcon);
        button.setToolTipText("这是一个图片按钮");  //鼠标放到那里后会出现悬浮窗提示

        //add  将按钮添加到容器上
        container.add(button);
        this.setVisible(true);  //可见性
        this.setSize(500,500);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  //结束程序

        
    }

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


结果图
在这里插入图片描述

  • 单选按钮
package src.com.lesson05;

import javax.swing.*;
import java.awt.*;
import java.net.URL;
//单选框
public class JButtonDemo02 extends JFrame {
    public JButtonDemo02() {
        Container container = this.getContentPane();
        URL url = JButtonDemo02.class.getResource("tx.jpg");
        //将图片修改成图标
        ImageIcon imageIcon = new ImageIcon(url);

        //单选框
        JRadioButton jRadioButton1 = new JRadioButton("单选框1");
        JRadioButton jRadioButton2 = new JRadioButton("单选框2");
        JRadioButton jRadioButton3 = new JRadioButton("单选框3");

        //由于单选框只能选择一个,进行分组
        ButtonGroup buttonGroup = new ButtonGroup();
        buttonGroup.add(jRadioButton1);  //按钮分组,将单选框添加到按钮
        buttonGroup.add(jRadioButton2);
        buttonGroup.add(jRadioButton3);

        //将单选框添加到容器中,并设置布局
        container.add(jRadioButton1,BorderLayout.CENTER);
        container.add(jRadioButton2,BorderLayout.NORTH);
        container.add(jRadioButton3,BorderLayout.SOUTH);

        this.setVisible(true);  //可见性
        this.setSize(500,500);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  //结束程序

    }

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


结果图
在这里插入图片描述

  • 复选按钮
package src.com.lesson05;

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

//多选框
public class JButtonDemo03 extends JFrame {
    public JButtonDemo03() {
        Container container = this.getContentPane();
        URL url = JButtonDemo03.class.getResource("tx.jpg");
        //将图片修改成图标
        ImageIcon imageIcon = new ImageIcon(url);

        //多选框
        JCheckBox jCheckBox1 = new JCheckBox("记住密码");
        JCheckBox jCheckBox2 = new JCheckBox("自动登录");

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

        this.setVisible(true);  //可见性
        this.setSize(500,500);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  //结束程序

    }

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



结果图
在这里插入图片描述

1.6、列表

  • 下拉框(JComboBox)
package src.com.lesson06;

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

public class TestComboboxDemo01 extends JFrame {
    public TestComboboxDemo01() {

        Container container = this.getContentPane();  //创建容器

        JComboBox status = new JComboBox();  //创建下拉框

        status.addItem(null);
        status.addItem("正在热映");   //下拉内容
        status.addItem("已下架");
        status.addItem("即将上映");

        status.addActionListener(new MyActionListener6());   //监听窗口中选择的内容
        container.add(status);  

        this.setVisible(true);  //可见性
        this.setSize(500,350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  //程序关闭

    }


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

    private class MyActionListener6 implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            JComboBox source = (JComboBox) e.getSource();   //获取资源
            System.out.println(source.getSelectedIndex());   //输出来源的项目编号
            System.out.println(source.getSelectedItem());   //输出来源所选的名称

        }
    }
}

结果图

在这里插入图片描述

  • 列表框()
package src.com.lesson06;

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

public class TestComboboxDemo02 extends JFrame {
    public TestComboboxDemo02() {

        Container container = this.getContentPane();  //创建容器

        //生成列表的内容
        //String[] contents = {"1","2","3"};
        Vector vector = new Vector();  //动态的列表
        //列表中需要放入内容
        vector.add(1);
        vector.add(57);
        vector.add("wda");

        JList jList = new JList(vector);

        container.add(jList);


        this.setVisible(true);  //可见性
        this.setSize(500,350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  //程序关闭

    }


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

    private class MyActionListener6 implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            JComboBox source = (JComboBox) e.getSource();   //获取资源
            System.out.println(source.getSelectedIndex());   //输出来源的项目编号
            System.out.println(source.getSelectedItem());   //输出来源所选的名称

        }
    }
}


结果图
在这里插入图片描述

1.7、文本框

package src.com.lesson06;

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

//文本框
public class TsetTextDemo01 extends JFrame {
    public TsetTextDemo01() {

        Container container = this.getContentPane();  //创建容器

        JTextField jTextField = new JTextField("hello");
        JTextField jTextField2 = new JTextField("world",20);

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

        this.setVisible(true);  //可见性
        this.setSize(500,350);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  //程序关闭

    }


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


}


结果图

在这里插入图片描述


注:文章仅做个人学习日记,不做学习建议,学习来源:狂神说

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值