Swing
1、JFrame:中文Lable乱码
package com.lesson04;
import javax.swing.*;
import java.awt.*;
public class JFrameDemo01 {
public void init() {
JFrame jFrame = new JFrame();
jFrame.setBounds(200,200,400,400);
jFrame.setBackground(Color.YELLOW);
jFrame.setVisible(true);
Label label = new Label("小刘学Java");
jFrame.add(label);
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JFrameDemo01().init();
}
}
1.1、JFrame: 中文Lable不乱码
package com.lesson04;
import javax.swing.*;
import java.awt.*;
public class JFrameDemo {
public static void main(String[] args) {
new MyJFrame().init();
}
}
class MyJFrame extends JFrame {
public void init() {
this.setBounds(200,200,600,800);
this.setVisible(true);
JLabel jLabel = new JLabel("小刘学Java");
this.add(jLabel);
jLabel.setHorizontalAlignment(0);
Container container = this.getContentPane();
container.setBackground(Color.YELLOW);
}
}
2、 JDialog弹窗
package com.lesson04;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class JDialogDemo extends JFrame {
public JDialogDemo() {
this.setBounds(100,100,400,400);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container container = this.getContentPane();
container.setLayout(null);
JButton jButton = new JButton("点击弹出一个对话框");
jButton.setBounds(30,30,200,30);
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new MyJDialogDemo();
}
});
container.add(jButton);
}
public static void main(String[] args) {
new JDialogDemo();
}
}
class MyJDialogDemo extends JDialog {
public MyJDialogDemo() {
this.setBounds(100,100,200,200);
this.setVisible(true);
Container container = this.getContentPane();
container.setLayout(null);
container.add(new Label("小刘学Java"));
}
}
3、 标签
1. label
new JLabel("XXX");
2. 图标ICON
package com.L.lesson04;
import javax.swing.*;
import java.awt.*;
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(20,20);
JLabel jLabel = new JLabel("iconText", iconDemo, SwingConstants.CENTER);
Container container = getContentPane();
container.add(jLabel);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
IconDemo iconDemo = new IconDemo();
iconDemo.init();
}
@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;
}
}
3. 图片Icon
package com.L.lesson04;
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class ImageIconDemo extends JFrame {
public ImageIconDemo(){
JLabel jLabel = new JLabel("ImageIcon");
URL url = ImageIconDemo.class.getResource("tp01.jpg");
ImageIcon imageIcon = new ImageIcon(url);
jLabel.setIcon(imageIcon);
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
Container container = getContentPane();
container.add(jLabel);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setBounds(100,100,200,200);
}
public static void main(String[] args) {
new ImageIconDemo();
}
}
4、面板
1. 普通面板
package com.L.lesson05;
import javax.swing.*;
import java.awt.*;
public class JPanelDemo extends JFrame {
public JPanelDemo(){
Container container = this.getContentPane();
container.setLayout(new GridLayout(2,1,10,10));
JPanel jPanel01 = new JPanel(new GridLayout(1, 3));
JPanel jPanel02 = new JPanel(new GridLayout(1, 2));
JPanel jPanel03 = new JPanel(new GridLayout(2, 1));
JPanel jPanel04 = new JPanel(new GridLayout(3, 1));
jPanel01.add(new JButton("1"));
jPanel01.add(new JButton("1"));
jPanel01.add(new JButton("1"));
jPanel02.add(new JButton("2"));
jPanel02.add(new JButton("2"));
jPanel03.add(new JButton("3"));
jPanel03.add(new JButton("3"));
jPanel04.add(new JButton("4"));
jPanel04.add(new JButton("4"));
jPanel04.add(new JButton("4"));
container.add(jPanel01);
container.add(jPanel02);
container.add(jPanel03);
container.add(jPanel04);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
this.setBounds(100,100,200,200);
}
public static void main(String[] args) {
new JPanelDemo();
}
}
package com.L.lesson05;
import javax.swing.*;
import java.awt.*;
public class JScrollDemo extends JFrame {
public JScrollDemo(){
Container container = this.getContentPane();
JTextArea jTextArea = new JTextArea(20,50);
jTextArea.setText("小刘学Java");
JScrollPane jScrollPane = new JScrollPane(jTextArea);
container.add(jScrollPane);
this.setVisible(true);
this.setBounds(100,100,200,350);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JScrollDemo();
}
}
5、按钮
1. 图片按钮
package com.L.lesson05;
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class JButtonDemo01 extends JFrame {
public JButtonDemo01(){
Container container = this.getContentPane();
URL resource = JButtonDemo01.class.getResource("xx.jpg");
ImageIcon imageIcon = new ImageIcon(resource);
JButton jButton = new JButton();
jButton.setIcon(imageIcon);
jButton.setText("联想宇航员");
jButton.setToolTipText("这是一个图片按钮");
container.add(jButton);
this.setBounds(100,100,200,400);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new JButtonDemo01();
}
}
1. 单选按钮
package com.L.lesson05;
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class JButtonDemo02 extends JFrame {
public JButtonDemo02(){
Container container = this.getContentPane();
URL resource = JButtonDemo01.class.getResource("xx.jpg");
ImageIcon imageIcon = new ImageIcon(resource);
JRadioButton radioButton01 = new JRadioButton("radioButton01");
JRadioButton radioButton02 = new JRadioButton("radioButton02");
JRadioButton radioButton03 = new JRadioButton("radioButton03");
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(radioButton01);
buttonGroup.add(radioButton02);
buttonGroup.add(radioButton03);
container.add(radioButton01,BorderLayout.NORTH);
container.add(radioButton02,BorderLayout.CENTER);
container.add(radioButton03,BorderLayout.SOUTH);
this.setBounds(100,100,200,400);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new JButtonDemo02();
}
}
package com.L.lesson05;
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class JButtonDemo03 extends JFrame {
public JButtonDemo03(){
Container container = this.getContentPane();
URL resource = JButtonDemo01.class.getResource("xx.jpg");
ImageIcon imageIcon = new ImageIcon(resource);
JCheckBox checkBox01 = new JCheckBox("checkBox-01");
JCheckBox checkBox02 = new JCheckBox("checkBox-02");
JCheckBox checkBox03 = new JCheckBox("checkBox-03");
container.add(checkBox01,BorderLayout.SOUTH);
container.add(checkBox02,BorderLayout.CENTER);
container.add(checkBox03,BorderLayout.NORTH);
this.setBounds(100,100,200,400);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new JButtonDemo03();
}
}
6、列表
1. 下拉框
package com.L.lesson06;
import javax.swing.*;
import java.awt.*;
public class TextComboBoxDemo01 extends JFrame {
public TextComboBoxDemo01(){
Container container = this.getContentPane();
JComboBox status = new JComboBox();
JPanel panel = new JPanel();
status.addItem("null");
status.addItem("正在热映");
status.addItem("已下架");
status.addItem("即将上架");
panel.add(status);
container.add(panel);
this.setBounds(100,100,200,200);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new TextComboBoxDemo01();
}
}
2. 列表框
package com.L.lesson06;
import javax.swing.*;
import java.awt.*;
import java.util.Vector;
public class TextComboBoxDemo02 extends JFrame {
public TextComboBoxDemo02(){
Container container = this.getContentPane();
Vector contents = new Vector();
JList list = new JList(contents);
contents.add("zhangSan");
contents.add("LiSi");
contents.add("XiaoLiu");
container.add(list);
this.setBounds(100,100,200,200);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new TextComboBoxDemo02();
}
}
- 应用场景
- 选择地区,或者一些单个选项。一般contents超过两个用下拉框,两个一下用单选框,节省内存
- 列表,用来展示信息,一般是动态扩容的
7、文本框
-
1. 本框
package com.L.lesson06;
import javax.swing.*;
import java.awt.*;
public class TextTextDemo01 extends JFrame{
public TextTextDemo01(){
Container container = this.getContentPane();
JTextField textField01 = new JTextField("小刘学Java");
JTextField textField02 = new JTextField("Java很难学",20);
container.add(textField01,BorderLayout.NORTH);
container.add(textField02,BorderLayout.SOUTH);
this.setBounds(100,100,200,200);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new TextTextDemo01();
}
}
-
2. 密码框
package com.L.lesson06;
import javax.swing.*;
import java.awt.*;
public class TextTextDemo02 extends JFrame{
public TextTextDemo02(){
Container container = this.getContentPane();
JPasswordField passwordField = new JPasswordField();
passwordField.setEchoChar('*');
container.add(passwordField);
this.setBounds(100,100,200,200);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new TextTextDemo02();
}
}
-
3. 文本域
package com.L.lesson05;
import javax.swing.*;
import java.awt.*;
public class JScrollDemo extends JFrame {
public JScrollDemo(){
Container container = this.getContentPane();
JTextArea jTextArea = new JTextArea(20,50);
jTextArea.setText("小刘学Java");
JScrollPane jScrollPane = new JScrollPane(jTextArea);
container.add(jScrollPane);
this.setVisible(true);
this.setBounds(100,100,200,350);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JScrollDemo();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人