首页 > 其他 > 详细

GUI编程

时间:2021-04-12 22:45:46      阅读:26      评论:0      收藏:0      [点我收藏+]

组件和容器

AWT

Frame

public class TestFrame {
    public static void main(String[] args) {
        //Frame
        Frame frame = new Frame("我的带个JAVA图形界面窗口");
        //设置可见性
        frame.setVisible(true);
        //设置窗口大小
        frame.setSize(400, 400);
        //设置背景颜色
        frame.setBackground(Color.BLUE);
        //设置初始位置
        frame.setLocation(200,200);
        //设置大小固定
        frame.setResizable(false);
    }
}

封装后,创建多个frame

package com.gui.lesson01;

import java.awt.*;




public class TestFrame2 {
    public static void main(String[] args) {
        //展示多个窗口
        MyFrame frame1 =  new MyFrame(100, 100, 100, 100,Color.black);
        MyFrame frame2 =  new MyFrame(200, 200, 200, 200,Color.red);
        MyFrame frame3 =  new MyFrame(300, 300, 300, 300,Color.blue);
    }



}
/**
 * MyFrame
 */
class MyFrame extends Frame {
    static int id = 0;//可能多个窗口
    public MyFrame(int x,int y,int w,int h,Color bgColor){
        super("我的第"+(++id)+"窗口");
        setVisible(true);
        setBounds(x, y, w, h);
        setBackground(bgColor);

    }
    
}

Panel面板

package com.gui.lesson01;
import java.awt.*;
import java.awt.event.*;


//可以看成是一个空间,不能单独存在,需要Frame
public class TestPanel {
    public static void main(String[] args) {
        Frame frame = new Frame();
        Panel panel = new Panel();

        //设置布局
        frame.setLayout(null);
        frame.setVisible(true);
        frame.setSize(300, 300);
        frame.setLocation(400, 400);
        frame.setBackground(Color.blue);
        //设置panel--面板布局
        panel.setBounds(50, 50, 100, 100);
        panel.setBackground(Color.red);
        frame.add(panel);
        //监听关闭时间
        frame.addWindowListener(new WindowAdapter(){

            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
            

        });
    }
}

布局管理

  • 流式数据
package com.gui.lesson01;

import java.awt.*;


public class TestFlowLayout {
    public static void main(String[] args) {
        Frame frame = new Frame();

        //按钮组件
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");
        //设置为流式布局
        frame.setLayout(new FlowLayout(FlowLayout.RIGHT));
        frame.setBounds(200, 200, 200, 200);
        frame.setVisible(true);
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
    }
}
  • 东西南北中
package com.gui.lesson01;

import java.awt.*;

public class TestBorderLayout {
    public static void main(String[] args) {
        Frame frame = new Frame();
        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");

        frame.setBounds(200, 200, 500, 500);
        frame.setLayout(new BorderLayout());
        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.setVisible(true);
    }
}
  • 表格布局
package com.gui.lesson01;

import java.awt.*;

public class TestGridLayout {
    
    public static void main(String[] args) {
        Frame frame = new Frame();
        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");

        frame.setBounds(200, 200, 500, 500);
        frame.setLayout(new GridLayout(3,2));
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        frame.add(button4);
        frame.add(button5);
        frame.pack();//java函数,最优处理
        frame.setVisible(true);
    }
}
  • 练习:

技术分享图片

package com.gui.lesson01;

import java.awt.*;
import java.awt.event.*;


public class TestLayout {
    public static void main(String[] args) {
        Frame frame = new Frame();
        Panel panel1 = new Panel(new BorderLayout());
        Panel panel2 = new Panel(new BorderLayout());
        Panel panel3 = new Panel(new GridLayout(2,1));
        Panel panel4 = new Panel(new GridLayout(2,2));
        frame.setBounds(950,400,500,350);
        frame.setVisible(true);
        frame.setLayout(new GridLayout(2,1));
        Button button1 = new Button("west-1");
        Button button2 = new Button("east-1");
        panel1.add(button1,BorderLayout.WEST);
        panel1.add(button2,BorderLayout.EAST);
        Button button3 = new Button("upcup");
        Button button4 = new Button("upcdown");
        panel3.add(button3);
        panel3.add(button4);
        panel1.add(panel3);
        frame.add(panel1);
        Button button5 = new Button("west-2");
        Button button6 = new Button("east-2");
        panel2.add(button5,BorderLayout.WEST);
        panel2.add(button6,BorderLayout.EAST);
        Button button7 = new Button("downc1");
        Button button8 = new Button("downc2");
        Button button9 = new Button("downc3");
        Button button10 = new Button("downc4");
        panel4.add(button7);
        panel4.add(button8);
        panel4.add(button9);
        panel4.add(button10);
        panel2.add(panel4);
        frame.add(panel2);
        frame.addWindowListener(new WindowAdapter(){

            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}

事件监听

  • 单个监听
package com.gui.lesson02;
import java.awt.*;
import java.awt.event.*;
public class TestActionEvent {
    public static void main(String[] args) {
        //按下按钮触发时间
        Frame frame = new Frame();
        Button button = new Button("end");
        frame.setBounds(200, 200, 500, 500);
        frame.setVisible(true);
        MyActionListener myActionListener = new MyActionListener();
        button.addActionListener(myActionListener);     
        frame.add(button);
        windowClose(frame);
    }

    public 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.exit(0);     
    }    
}
  • 多个监听共用一个事件
package com.gui.lesson02;
import java.awt.*;
import java.awt.event.*;
public class TestActionEvent02 {
    public static void main(String[] args) {
        //按下按钮触发时间
        Frame frame = new Frame();
        frame.setLayout(new FlowLayout());
        Button button1 = new Button("start");
        Button button2 = new Button("stop");
        Button button3 = new Button("other");
        //setActionCommand可以显示的定义触发会返回的命令,如果不显示定义则会使用默认值
        button2.setActionCommand("end");
        frame.setBounds(200, 200, 500, 500);
        frame.setVisible(true);
        MyMonitor myMonitor = new MyMonitor();
        button1.addActionListener(myMonitor);
        button2.addActionListener(myMonitor);        
        button3.addActionListener(myMonitor);        
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        windowClose(frame);
    }



    public static void windowClose(Frame frame){
        frame.addWindowListener(new WindowAdapter(){

            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
            
        });
    }
}

class MyMonitor implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
        ///getActionCommand 获取按钮信息
        String temp = e.getActionCommand();
        if (temp == "start") {
            System.out.println("开始");
        }else if(temp == "end"){
            System.exit(0);
        }else{
            System.out.println("出错了");
        }        
    }
}

输入框TextField监听

package come.xiaobai.gui.lesson02;
import java.awt.*;
import java.awt.event.*;

public class TestText01 {
    public static void main(String[] args) {
        //只管启动
        MyFrame myFrame = new MyFrame();
    }
}
class MyFrame extends Frame{
    public MyFrame(){
        TextField textField = new TextField();
        add(textField);
        //监听文本框输入的文字
        MyActionListener2 myActionListener2 = new MyActionListener2();
        //按下回车会触发输入框事件
        textField.addActionListener(myActionListener2);
        //设置替换编码
        textField.setEchoChar(‘*‘);
        setVisible(true);
        pack();
        
    }

}

class MyActionListener2 implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
        TextField textField = (TextField)e.getSource();//e.getSource(),获得资源返回的是object对象,可以转换成任何对象,要获取文本,转换成TextField对象
        textField.getText();//获取输入框中的文本
        System.out.println(textField.getText());
        textField.setText("");
    }
}

简易计算器,组合+内部类回顾复习!

oop原则:组合,大于继承!

//继承
class A extends B {
    
}

//组合
class A{
    public B b;
}

原实现代码:

package come.xiaobai.gui.lesson02;
import java.awt.*;
import java.awt.event.*;


public class TestCalc {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
    }
}

//计算器类
class Calculator extends Frame{
    public Calculator(){
        //3个文本框
        TextField num1 = new TextField();
        TextField num2 = new TextField();
        TextField num3 = new TextField();
        //1个按钮
        Button button = new Button("=");
        button.addActionListener(new MyCalculatorListener(num1,num2,num3));
        //1个标签
        Label label = new Label("+");
        setLayout(new FlowLayout());
        add(num1);
        add(label);
        add(num2);
        add(button);
        add(num3);
        pack();
        setVisible(true);
    }
}

class MyCalculatorListener implements ActionListener{
    private TextField num1,num2,num3;
    @Override
    public void actionPerformed(ActionEvent e) {
        //1、获取输入数字
        int n1 = Integer.parseInt(num1.getText());
        int n2 = Integer.parseInt(num2.getText());
        //2、算数,结果放在第三个文本
        int n3 = n1 + n2;
        num3.setText(""+n3);
        //3.清空前2个数据
        num1.setText("");
        num2.setText("");
    }

    public MyCalculatorListener(TextField num1,TextField num2,TextField num3) {
        this.num1 = num1;
        this.num2 = num2;
        this.num3 = num3;
    }   
}

组合优化:

package come.xiaobai.gui.lesson02;
import java.awt.*;
import java.awt.event.*;


public class TestCalc2 {
    public static void main(String[] args) {
        Calculator2 calculator2 = new Calculator2();
        calculator2.loadFrame();
    }
}

//计算器类
class Calculator2 extends Frame{

    //属性
    TextField num1,num2,num3;
    //方法

    public void loadFrame(){
        //3个文本框
        num1 = new TextField(10);
        num2 = new TextField(10);
        num3 = new TextField(10);
        //1个按钮
        Button button = new Button("=");
        button.addActionListener(new MyCalculatorListener2(this));
        //1个标签
        Label label = new Label("+");


        //布局
        setLayout(new FlowLayout());
        add(num1);
        add(label);
        add(num2);
        add(button);
        add(num3);
        pack();
        setVisible(true);
    }
}

class MyCalculatorListener2 implements ActionListener{
    //获取计算器对象,在一个类中获取另外一个类
    Calculator2 calculator2 = null;
    @Override
    public void actionPerformed(ActionEvent e) {
        //1、获取输入数字
        int n1 = Integer.parseInt(calculator2.num1.getText());
        int n2 = Integer.parseInt(calculator2.num2.getText());
        calculator2.num3.setText(""+(n1+n2));
        calculator2.num1.setText("");
        calculator2.num2.setText("");
        //2、算数,结果放在第三个文本

        //3.清空前2个数据

    }

    public MyCalculatorListener2(Calculator2 calculator2) {
        this.calculator2 = calculator2;
    }  
}

内部类:

  • 更好的包装
  • 内部类可以随便的使用外部类属性、方法
package come.xiaobai.gui.lesson02;
import java.awt.*;
import java.awt.event.*;


public class TestCalc3 {
    public static void main(String[] args) {
        Calculator3 calculator3 = new Calculator3();
        calculator3.loadFrame();
    }
}

//计算器类
class Calculator3 extends Frame{

    //属性
    TextField num1,num2,num3;
    //方法

    public void loadFrame(){
        //3个文本框
        num1 = new TextField(10);
        num2 = new TextField(10);
        num3 = new TextField(10);
        //1个按钮
        Button button = new Button("=");
        button.addActionListener(new MyCalculatorListener3());
        //1个标签
        Label label = new Label("+");


        //布局
        setLayout(new FlowLayout());
        add(num1);
        add(label);
        add(num2);
        add(button);
        add(num3);
        pack();
        setVisible(true);
    }
    //内部类
    private class MyCalculatorListener3 implements ActionListener{
        //获取计算器对象,在一个类中获取另外一个类
       
        @Override
        public void actionPerformed(ActionEvent e) {
            //1、获取输入数字
            int n1 = Integer.parseInt(num1.getText());
            int n2 = Integer.parseInt(num2.getText());
            num3.setText(""+(n1+n2));
            num1.setText("");
            num2.setText("");
            //2、算数,结果放在第三个文本
    
            //3.清空前2个数据
    
        }
        
    }
}

画笔

package come.xiaobai.gui.lesson03;
import java.awt.*;
import java.awt.event.*;
public class TestPaint {
    public static void main(String[] args) {
        new MyPaint().loadFrame();
    }
}

class MyPaint extends Frame{
    public void loadFrame() {
        setBounds(200, 200, 600, 500);
        setVisible(true);
    }



    @Override
    public void paint(Graphics g) {
        //需要有颜色,画笔可以画画
        g.setColor(Color.red);
        g.drawOval(100, 100, 100, 100);
        //画笔用完,要还原最初习惯
        g.drawOval(100, 100, 100, 100);
    }
    
}

鼠标监听

模拟画图工具

package com.xiaobai.gui.lesson03;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.Iterator;


public class TestMouseListener {
    public static void main(String[] args) {
        new MyFrame("画图");
    }
}

class MyFrame extends Frame{
    //监听鼠标当前位置,需要集合来存储这个点
    ArrayList points;
    public MyFrame(String title){
        super(title);
        setBounds(200, 200, 600, 500);
        setVisible(true);
        //存鼠标的点
        points = new ArrayList<>();

        //鼠标监听器针对这个窗口
        this.addMouseListener(new MyMouseListener());
    }

    @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 MyMouseListener extends MouseAdapter{
        //监听鼠标弹起鼠标 按下、弹起
        @Override
        public void mousePressed(MouseEvent e) {
            
            MyFrame myFrame =  (MyFrame)e.getSource();
            //这里点击时,会在页面加点
            myFrame.addPaint(new Point(e.getX(),e.getY()));
            //点击后重画
            myFrame.repaint();
        }
    }
}

窗口监听

package com.xiaobai.gui.lesson03;
import java.awt.*;
import java.awt.event.*;
public class TestWindow {
    public static void main(String[] args) {
        myWindow myWindow = new myWindow();
    }
}


class myWindow extends Frame{

    public myWindow() {
        setBounds(200, 200, 600, 500);
        setVisible(true);
        // addWindowListener(new myWindowListener());
        //优化使用匿名内部类
        this.addWindowListener(
            new WindowAdapter(){

                @Override
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
                
            }
        );
    }

    class myWindowListener extends WindowAdapter{

        @Override
        public void windowClosing(WindowEvent e) {
            
            System.exit(0);//0正常退出,程序关闭,1为非正常退出
        }
        
    }
}

键盘监听

package com.xiaobai.gui.lesson03;
import java.awt.*;
import java.awt.event.*;
public class TestKey {
    public static void main(String[] args) {
        new KeyFrame();
    }
}
class KeyFrame extends Frame{

    public KeyFrame() {
        setBounds(200, 200, 500, 600);
        setVisible(true);
        this.addKeyListener(
            new KeyAdapter(){

                @Override
                public void keyPressed(KeyEvent e) {
                    
                    int keycode = e.getKeyCode();
                    if (keycode == KeyEvent.VK_B) {
                        System.out.println("按下了B");
                    } 
                }
                
            }
        );
        this.addWindowListener(
            new WindowAdapter(){

                @Override
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
                
            }
        );
    }   
}

Swing

1.窗口、面板

package com.xiaobai.gui.lesson04;

import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

public class JFrameDemo {
    //init();初始化
    public  void init() {
        //顶级窗口
        JFrame jFrame = new JFrame("这是一个JFrame窗口");
        jFrame.setVisible(true);
        jFrame.setBounds(200, 200, 600, 500);
        
        JLabel jLabel = new JLabel("增加文字");
        jFrame.add(jLabel);
        //让文本水平居中
        jLabel.setHorizontalAlignment(SwingConstants.CENTER);
        //关闭事件
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jFrame.getContentPane().setBackground(Color.red);
    }

    public static void main(String[] args) {
        //建立窗口
        new JFrameDemo().init();
    }
}

2.弹窗

package com.xiaobai.gui.lesson04;

import java.awt.Color;
import java.awt.Container;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

public class DialogDemo extends JFrame {
    
    public static void main(final String[] args) {
        new DialogDemo();
    }

    public DialogDemo() {
        this.setBounds(200, 200, 600, 600);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setVisible(true);
        Container contentPane = this.getContentPane();
        contentPane.setBackground(Color.red);
        contentPane.setLayout(null);
        JButton jButton = new JButton("点击弹出对话框");
        jButton.setBounds(30, 30, 200, 50);
        //点击按钮时弹出弹窗,需要监听
        jButton.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent e) {
                //弹窗
                new MyDialog();
            }
            
        });
        contentPane.add(jButton);

    }
}

class MyDialog extends JDialog{

    public MyDialog() {
        this.setBounds(50, 50, 300, 300);
        this.setVisible(true);
        Container contentPane1 = this.getContentPane();
        contentPane1.setBackground(Color.blue);
        contentPane1.setLayout(null);
    }   
}

3.标签

label:

new Label("xxx");

Jlabel:

new JLabel("xxx");

图标icon

package com.xiaobai.gui.lesson04;
import java.awt.*;
import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

//图标,需要实现类,Frame继承
public class IconDemo extends JFrame implements Icon{
    private int width;
    private int height;

    public  void init() {
        IconDemo iconDemo = new IconDemo(15,15);
        //图标放在标签,也可以放在按钮上
        JLabel jLabel = new JLabel("icon",iconDemo,SwingConstants.CENTER);
        Container contentPane = getContentPane();
        contentPane.add(jLabel);
        this.setVisible(true);
        this.setBounds(100, 100, 500, 500);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new IconDemo().init();
    }
    

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

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

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


    public IconDemo() {

    }


    public IconDemo(int width, int height) {
        this.width = width;
        this.height = height;
    }

    
}

图片

package com.xiaobai.gui.lesson04;

import java.awt.Container;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

public class ImageIconDemo extends JFrame {
    public ImageIconDemo() {
        //获取图片地址
        JLabel jLabel = new JLabel("ImageIcin");
        URL url = ImageIconDemo.class.getResource("1.png");//获取同类下的资源
        ImageIcon myImageIcon = new ImageIcon(url);
        jLabel.setIcon(myImageIcon);
        jLabel.setHorizontalAlignment(SwingConstants.CENTER);
        Container contentPane = getContentPane();
        contentPane.add(jLabel);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setBounds(100, 100, 500, 500);
    }

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

4.面板

package com.xiaobai.gui.lesson05;
import java.awt.*;
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

public class JPanelDemo extends JFrame{

    public JPanelDemo() {
        Container contentPane = getContentPane();
        contentPane.setBackground(Color.red);
        contentPane.setLayout(new GridLayout(2,1,10,10));//后面参数的意思是间距
        JPanel jPanel = new JPanel(new GridLayout(1,3));
        jPanel.add(new JButton("1"));
        jPanel.add(new JButton("2"));
        jPanel.add(new JButton("3"));
        setBounds(100, 100, 500, 500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        add(jPanel);
    }
    public static void main(String[] args) {
        new JPanelDemo();
    }
}

JScrollPanel

package com.xiaobai.gui.lesson05;

import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;

public class JScrollPanelDemo extends JFrame{

    public JScrollPanelDemo() {
        Container contentPane = this.getContentPane();
        JTextArea jTextArea = new JTextArea(20,50);
        jTextArea.setText("这里输入文字。");
        JScrollPane jScrollPanel = new JScrollPane(jTextArea);
        contentPane.add(jScrollPanel);


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

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

5.按钮

图片按钮

package com.xiaobai.gui.lesson05;

import java.awt.Color;
import java.awt.Container;
import java.net.URL;
import javax.swing.*;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;

public class ButtonDemo01 extends JFrame{

    public ButtonDemo01() {
        Container contentPane = this.getContentPane();
        contentPane.setBackground(Color.red);
        URL url = ButtonDemo01.class.getResource("1.png");
        Icon imageIcon = new ImageIcon(url);//这样就将图片变为了图标
        //把图标放在按钮上
        JButton jButton = new JButton();
        jButton.setIcon(imageIcon);
        jButton.setText("这是一个按钮");
        jButton.setToolTipText("This is a Button.");
        JPanel jPanel = new JPanel();
        jPanel.add(jButton);
        this.add(jPanel);
        this.setBounds(100, 100, 500, 500);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

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

单选框

package com.xiaobai.gui.lesson05;

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

public class ButtonDemo02 extends JFrame{

    public ButtonDemo02() {
        Container contentPane = this.getContentPane();
        contentPane.setBackground(Color.red);
        
        //单选框
        JRadioButton jRadioButton01 = new JRadioButton("01");
        JRadioButton jRadioButton02 = new JRadioButton("02");
        JRadioButton jRadioButton03 = new JRadioButton("03");
       
        //单选只能选一个,需要分钟
        ButtonGroup buttonGroup = new ButtonGroup();
        buttonGroup.add(jRadioButton01);
        buttonGroup.add(jRadioButton02);
        buttonGroup.add(jRadioButton03);
        JPanel jPanel = new JPanel();
        jPanel.add(jRadioButton01);
        jPanel.add(jRadioButton02);
        jPanel.add(jRadioButton03);
        this.add(jPanel);
        this.setBounds(100, 100, 500, 500);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

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

多选框

package com.xiaobai.gui.lesson05;

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

public class ButtonDemo03 extends JFrame{

    public ButtonDemo03() {
        Container contentPane = this.getContentPane();
        contentPane.setBackground(Color.red);
        URL url = ButtonDemo03.class.getResource("1.png");
        Icon imageIcon = new ImageIcon(url);//这样就将图片变为了图标
        //多选框
        JCheckBox jRadioButton01 = new JCheckBox("01");
        JCheckBox jRadioButton02 = new JCheckBox("02");
        JCheckBox jRadioButton03 = new JCheckBox("03");

        JPanel jPanel = new JPanel();
        jPanel.add(jRadioButton01);
        jPanel.add(jRadioButton02);
        jPanel.add(jRadioButton03);
        this.add(jPanel);
        this.setBounds(100, 100, 500, 500);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

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

6.列表

下拉框

package com.xiaobai.gui.lesson06;

import java.awt.Container;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

public class TestComboboxDemo01 extends JFrame{

    public TestComboboxDemo01() {
        Container contentPane = getContentPane();
        JComboBox jComboBox = new JComboBox();
        jComboBox.addItem(null);
        jComboBox.addItem("热映");
        jComboBox.addItem("下架");
        jComboBox.addItem("即将上映");

        contentPane.add(jComboBox);

        

        this.setBounds(50, 500, 500, 500);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new TestComboboxDemo01();
    }
}

列表框

package com.xiaobai.gui.lesson06;

import java.awt.Container;

import javax.swing.*;

public class TestComboboxDemo02 extends JFrame{

    public TestComboboxDemo02() {
        Container contentPane = getContentPane();
        
        String[] contents = {"1","2","3"};
        JList jList = new JList(contents);
        contentPane.add(jList);

        this.setBounds(50, 500, 500, 500);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new TestComboboxDemo02();
    }
}

7.文本框

文本框

package com.xiaobai.gui.lesson06;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestTextDemo01 extends JFrame {

    public TestTextDemo01() {
        Container contentPane = getContentPane();
        
        JTextField jTextField = new JTextField("hello");
        JTextField jTextField2 = new JTextField("world",20);
        contentPane.add(jTextField,BorderLayout.NORTH);
        contentPane.add(jTextField2,BorderLayout.SOUTH);

        this.setBounds(50, 500, 500, 500);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new TestTextDemo01();
    }
}

密码框

package com.xiaobai.gui.lesson06;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestTextDemo02 extends JFrame {

    public TestTextDemo02() {
        Container contentPane = getContentPane();
        
        JPasswordField jPasswordField = new JPasswordField();
        jPasswordField.setEchoChar(‘*‘);
        contentPane.add(jPasswordField);
        this.setBounds(50, 500, 500, 500);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new TestTextDemo02();
    }
}

文本域

package com.xiaobai.gui.lesson05;

import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;

public class JScrollPanelDemo extends JFrame{

    public JScrollPanelDemo() {
        Container contentPane = this.getContentPane();
        JTextArea jTextArea = new JTextArea(20,50);
        jTextArea.setText("这里输入文字。");
        JScrollPane jScrollPanel = new JScrollPane(jTextArea);
        contentPane.add(jScrollPanel);


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

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

GUI编程

原文:https://www.cnblogs.com/novice77/p/14607395.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!