一、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();
}
}
结果图
注:文章仅做个人学习日记,不做学习建议,学习来源:狂神说