Java的GUI编程---Swing介绍
Swing
窗口,面板
package com.akita.lesson03;import javax.swing.*;
import java.awt.*;public class JFrameDemo02 {public static void main(String[] args) {new MyJFrame02().init();}
}class MyJFrame02 extends JFrame {public void init() {this.setBounds(200, 200, 500, 500);//获得一个容器,只有这样设置颜色才会生效Container contentPane = this.getContentPane();contentPane.setBackground(Color.CYAN);//设置文字JLabel jLabel = new JLabel("akita");this.add(jLabel);//让文本标签居中jLabel.setHorizontalAlignment(SwingConstants.CENTER);setVisible(true);}
}
弹窗
package com.akita.lesson03;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;//主窗口
public class DialogDemo extends JFrame {public DialogDemo() {this.setSize(500, 350);this.setLocation(300, 300);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//JFrame 放东西容器Container contentPane = this.getContentPane();//绝对布局contentPane.setLayout(null);//按钮JButton jButton = new JButton("点击弹出对话框");jButton.setBounds(30, 30, 200, 50);//点击这个按钮弹出一个弹窗jButton.addActionListener(new ActionListener() { //监听器@Overridepublic void actionPerformed(ActionEvent e) {//弹窗new MyDialogDD();}});contentPane.add(jButton);this.setVisible(true);}public static void main(String[] args) {new DialogDemo();}
}//弹窗的窗口
class MyDialogDD extends JDialog {public MyDialogDD() {this.setBounds(100, 100, 500, 500);Container contentPane = this.getContentPane();contentPane.setLayout(null);Label akita = new Label("akita");akita.setSize(50, 50);contentPane.add(akita);this.setVisible(true);}
}
标签
JLabel
JLabel jLabel = new JLabel("标签");
- Icon
package com.akita.lesson03;import javax.swing.*;
import java.awt.*;//图标是一个接口,需要实现类,并继承JFrame
public class IconDemo extends JFrame implements Icon {private int width;private int height;public IconDemo() {}public IconDemo(int width, int height) {this.width = width;this.height = height;}public void init() {IconDemo iconDemo = new IconDemo(15, 15);//图标要放在标签上JLabel jLabel = new JLabel("icon_test", iconDemo, SwingConstants.CENTER);Container contentPane = getContentPane();contentPane.add(jLabel);this.setBounds(200,200,400,340);this.setVisible(true);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new IconDemo().init();}@Overridepublic void paintIcon(Component c, Graphics g, int x, int y) {g.fillOval(x, y, width, height);}@Overridepublic int getIconWidth() {return this.width;}@Overridepublic int getIconHeight() {return this.height;}
}
ImageIcon
package com.akita.lesson03;import javax.swing.*;
import java.awt.*;
import java.net.URL;public class ImageIconDemo extends JFrame {public ImageIconDemo() {JLabel akita = new JLabel("akita");//获取图片地址URL url = ImageIconDemo.class.getResource("icon.png");ImageIcon imageIcon = new ImageIcon(url);akita.setIcon(imageIcon);akita.setHorizontalAlignment(SwingConstants.CENTER);Container container = getContentPane();container.add(akita);setVisible(true);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setBounds(200, 200, 500, 500);}public static void main(String[] args) {new ImageIconDemo();}
}
面板
JPanel
package com.akita.lesson04;import com.akita.lesson03.JFrameDemo;import javax.swing.*;
import java.awt.*;public class JPanelDemo extends JFrame {public JPanelDemo() {this.setBounds(100, 100, 400, 400);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);Container container = this.getContentPane();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));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);}public static void main(String[] args) {new JPanelDemo();}
}
运行结果
JScrollPane
package com.akita.lesson04;import javax.swing.*;
import java.awt.*;public class JScrollDemo extends JFrame {public JScrollDemo() {Container contentPane = this.getContentPane();//文本域JTextArea jTextArea = new JTextArea(20, 50);jTextArea.setText("akita");//Scroll面板JScrollPane jScrollPane = new JScrollPane(jTextArea);jScrollPane.setBackground(new Color(1, 1, 1));contentPane.add(jScrollPane);this.setVisible(true);this.setBounds(100, 100, 300, 300);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new JScrollDemo();}
}
运行效果
按钮
带图片的按钮
package com.akita.lesson04;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("icon.png");ImageIcon icon = new ImageIcon(url);//把这个图标放置在按钮上JButton jButton = new JButton();jButton.setIcon(icon);jButton.setToolTipText("akita");//addcontainer.add(jButton);setVisible(true);setBounds(100, 100, 200, 200);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new JButtonDemo01();}
}
运行效果
单选按钮
package com.akita.lesson04;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);//addcontainer.add(radioButton1, BorderLayout.CENTER);container.add(radioButton2, BorderLayout.NORTH);container.add(radioButton3, BorderLayout.SOUTH);this.setVisible(true);this.setBounds(200, 200, 500, 350);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new JButtonDemo02();}
}
运行效果
多选按钮
package com.akita.lesson04;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.NORTH);container.add(jCheckBox2, BorderLayout.SOUTH);this.setVisible(true);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);this.setBounds(200, 200, 400, 250);}public static void main(String[] args) {new JButtonDemo03();}
}
运行效果
列表
下拉框
package com.akita.lesson05;import javax.swing.*;
import java.awt.*;public class TestComboboxDemo01 extends JFrame {public TestComboboxDemo01() {Container container = this.getContentPane();container.setBackground(new Color(1, 1, 1));JComboBox jComboBox = new JComboBox();jComboBox.addItem("love");jComboBox.addItem("lee");jComboBox.addItem("wzz");container.add(jComboBox);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);this.setBounds(200, 200, 400, 250);this.setVisible(true);}public static void main(String[] args) {new TestComboboxDemo01();}
}
运行效果
列表框
package com.akita.lesson05;import javax.swing.*;
import java.awt.*;public class TestComboboxDemo02 extends JFrame {public TestComboboxDemo02() {Container container = this.getContentPane();//生成列表内容String[] contents = {"akita", "wzz", "lee"};JList jList = new JList(contents);container.add(jList);this.setVisible(true);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);this.setBounds(200, 200, 500, 350);}public static void main(String[] args) {new TestComboboxDemo02();}
}
运行效果
应用场景
- 对于下拉框可以设置选择地区,或者一些单个选项
- 列表框,用于展示信息,一般是动态扩容
文本框
文本框
package com.akita.lesson05;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.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);this.setBounds(200, 200, 400, 250);}public static void main(String[] args) {new TestTextDemo01();}
}
运行效果
密码框
package com.akita.lesson05;import javax.swing.*;
import java.awt.*;public class TestTextDemo02 extends JFrame {public TestTextDemo02() {Container container = this.getContentPane();JPasswordField passwordField = new JPasswordField();passwordField.setEchoChar('*');container.add(passwordField);this.setVisible(true);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);this.setBounds(200, 200, 400, 350);}public static void main(String[] args) {new TestTextDemo02();}
}
运行效果
文本域
package com.akita.lesson05;import javax.swing.*;
import java.awt.*;public class TestTextDemo03 extends JFrame {public TestTextDemo03() {Container container = this.getContentPane();//文本域JTextArea jTextArea = new JTextArea(20, 50);jTextArea.setText("hello world!");//scroll面板JScrollPane jScrollPane = new JScrollPane(jTextArea);container.add(jScrollPane);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);this.setVisible(true);this.setBounds(300, 300, 400, 250);}public static void main(String[] args) {new TestTextDemo03();}
}
运行效果
Java的GUI编程---Swing介绍相关推荐
- Java的GUI编程---AWT介绍
AWT AWT介绍 包含了很多类和接口.用于GUI编程:图形用户界面编程 元素:窗口,按钮,文本框 java.awt 组件和容器 Frame package com.akita.lesson01;im ...
- Java:GUI编程
文章目录 GUI编程 AWT 一.AWT介绍 二.组件和容器(Component和Container) 2.1.Frame 2.2.Panel 三.布局管理器 3.1.第一种布局管理器--FlowLa ...
- 4.JAVA之GUI编程事件监听机制
事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...
- 9.JAVA之GUI编程列出指定目录内容
代码如下: /*列出指定目录内容*/ import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import ...
- 13.JAVA之GUI编程将程序打包jar
jar基本命令: 目标:将下列MyMenuDemo.java代码打包成jar. 方法如下: 1.把java代码放到d:\myclass目录下. 2.按下快捷键ctrl+r,打开运行窗口,输入cmd后回 ...
- pythonguitkinter编程入门_Python Tkinter GUI编程入门介绍
一.Tkinter介绍 Tkinter是一个python模块,是一个调用Tcl/Tk的接口,它是一个跨平台的脚本图形界面接口.Tkinter不是唯一的python图形编程接口,但是是其中比较流行的一个 ...
- Java之GUI编程学习笔记六 —— AWT相关(画笔paint、鼠标监听事件、模拟画图工具)
Java之GUI编程学习笔记六 -- AWT相关(画笔paint) 参考教程B站狂神https://www.bilibili.com/video/BV1DJ411B75F 了解paint Frame自 ...
- python的gui编程用途_Python19-03_GUI编程----GUI编程的介绍(第一个程序)
GUI编程的介绍(第一个程序) GUI图形用户界面编程 我们前面实现的都是基于控制台程序, 程序和用户交互通过控制台来完成. GUI(Graphics User Interfance)即图形用户界面编 ...
- Java基础-GUI编程讲解
GUI编程 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 简介 GUI的核心技术:Swing和AWT 1.界面不美观 2.需要jre环境 3.GUI是MVC的 ...
最新文章
- 艺术站-卡通和风格化的HDRI天空
- js正则表达式的使用详解
- 我们正处于新科学革命的起点 | 学界热议AI for Science
- react页面数据过多怎么办_React-多页面应用
- 《VMware Virtual SAN权威指南(原书第2版)》一1.5 什么是Virtual SAN
- vivado MMCM/PLL IP使用
- 项目管理学习总结(5)——产品开发过程中各角色职责说明和技能要求
- 新手须知,前端该如何与后端合作?
- 【前端小技巧】利用border画三角形及梯形
- C语言和设计模式(之组合模式)
- 工作中常用到的ES6语法
- 【Swift】iOS UICollectionView 计算 Cell 大小的陷阱
- hikari如何切换数据源_spring boot+mybatis 多数据源切换(实例讲解)
- kali linux 添加字体,在kali linux之下安装wps之后 报错字体缺失
- 跨平台画图工具drawio使用指南——下载安装及常见功能指南
- Python小程序之购买商品
- python 保留浮点数为两位小数
- ROS学习笔记(一):利用节点进行发布与订阅
- Apollo星火计划学习笔记第四讲1——Apollo高精地图模块
- 如何安装免费正版office