Day10(gui编程)

GUI学习


AWT

  1. 创建第一个Frame(窗口)

     package cn.ljystudy.GUI.s1;
     
     import java.awt.*;
     
     /**
      * Gui的第一个窗口界面
      */
     public class frame {
         public static void main(String[] args) {
             //创建一个窗口
             Frame f1=new Frame("我的第一个窗口");
             //设置可见性
             f1.setVisible(true);
             //设置大小
             f1.setSize(100,100);
             //设置起始位置
             f1.setLocation(100,100);
             //设置背景颜色
             f1.setBackground(Color.BLUE);
             //设置不能拉伸
             f1.setResizable(false);
     
        }
     }
     

    image-20210822220732148实现效果图如左

通过封装实现多个窗口

 package cn.ljystudy.GUI.s1;
 
 import java.awt.*;
 
 /**
  * 使用封装来实现多个窗口的创建
  */
 public class MyFrame {
     public static void main(String[] args) {
     Framemould f1=new Framemould(100,100,100,100,new Color(12,123,12));
     Framemould f2=new Framemould(200,100,100,100,new Color(255,123,12));
     Framemould f3=new Framemould(100,200,100,100,new Color(255,255,12));
     Framemould f4=new Framemould(200,200,100,100,new Color(1,255,255));
    }
 }
 class Framemould extends Frame{
     //创建多个窗体需要计数
     static int id=0;
     Framemould(int x, int y, int width, int heigh, Color color){
         //super必须写在第一行
         super("这是我的窗口"+(++id));
 
         setBackground(color);
         //第一种方式
         //setLocation(x,y);
         //setSize(width,heigh);
         //第二种方式
         setBounds(x,y,width,heigh);
         setResizable(false);
         setVisible(true);
    }
 }
 

效果图如下:image-20210823091517349

  1. 面板Panel(解决了窗口关闭的问题)

     package cn.ljystudy.GUI.s1;
     
     import java.awt.*;
     import java.awt.event.WindowAdapter;
     import java.awt.event.WindowEvent;
     import java.awt.event.WindowListener;
     
     /**
      * 学习面板
      */
     public class TestPanel {
         public static void main(String[] args) {
             //创建一个窗口
             Frame frame=new Frame("面板学习");
             //设置布局(使用了这个才可以在窗口上布局)
             frame.setLayout(null);
             //创建面板
             Panel panel=new Panel();
             //给窗口设置位子和大小和背景颜色
             frame.setBounds(100,100,500,500);
             frame.setBackground(new Color(150,150,150));
             //设置面板的位置和大小和背景颜色
             panel.setBounds(50,50,400,400);
             panel.setBackground(new Color(255,2,2));
             //将面板添加到窗口上
             frame.add(panel);
             //设置窗口的可见性
             frame.setVisible(true);
     
             //实现窗口的关闭
             //添加监听
             //监听有(适配器模式)
             frame.addWindowListener(new WindowAdapter() {
                 @Override
                 public void windowClosing(WindowEvent e) {
                     //结束程序
                     System.exit(0);
                }
            });
        }
     }
     
  2. 布局管理

    • 流式布局

       package cn.ljystudy.GUI.s1;
       
       import java.awt.*;
       import java.awt.event.WindowAdapter;
       import java.awt.event.WindowEvent;
       
       public class TestFlowLayout {
           public static void main(String[] args) {
               Frame frame=new Frame("流式布局");
               //按钮组件 button
               Button b1=new Button("b1");
               Button b2=new Button("b2");
               Button b3=new Button("b3");
               Button b4=new Button("b4");
               Button b5=new Button("b5");
       
               //设置流式布局
               frame.setLayout(new FlowLayout(FlowLayout.RIGHT ));
       
               //设置大小
               frame.setSize(500,500);
               //设置可见
               frame.setVisible(true);
               //将按钮添加到窗体中
               frame.add(b1);
               frame.add(b2);
               frame.add(b3);
               frame.add(b4);
               frame.add(b5);
       
               //添加监听
               frame.addWindowListener(new WindowAdapter() {
                   @Override
                   public void windowClosing(WindowEvent e) {
                       System.exit(0);
                  }
              });
       
          }
       }
    • 东西南北中

       package cn.ljystudy.GUI.s1;
       
       import java.awt.*;
       import java.awt.event.WindowAdapter;
       import java.awt.event.WindowEvent;
       
       public class TestBorderLayout {
           public static void main(String[] args) {
               Frame frame=new Frame();
               //创建BorderLayout布局
                //frame.setLayout(new BorderLayout());
       
               //按钮组件 button
               Button b1=new Button("b1");
               Button b2=new Button("b2");
               Button b3=new Button("b3");
               Button b4=new Button("b4");
               Button b5=new Button("b5");
       
       
       
               //设置大小
               frame.setSize(500,500);
               //设置可见
               frame.setVisible(true);
               //将按钮添加到窗体中
               frame.add(b1,BorderLayout.CENTER);
               frame.add(b2,BorderLayout.NORTH);
               frame.add(b3,BorderLayout.WEST);
               frame.add(b4,BorderLayout.EAST);
               frame.add(b5,BorderLayout.SOUTH);
       
               //添加监听
               frame.addWindowListener(new WindowAdapter() {
                   @Override
                   public void windowClosing(WindowEvent e) {
                       System.exit(0);
                  }
              });
          }
       }
    • 表格Grid

       package cn.ljystudy.GUI.s1;
       
       import java.awt.*;
       import java.awt.event.WindowAdapter;
       import java.awt.event.WindowEvent;
       
       public class TestGridLayout {
           public static void main(String[] args) {
               Frame frame = new Frame();
       
               frame.setLayout(new GridLayout(2, 3));
               //按钮组件 button
               Button b1 = new Button("b1");
               Button b2 = new Button("b2");
               Button b3 = new Button("b3");
               Button b4 = new Button("b4");
               Button b5 = new Button("b5");
               Button b6 = new Button("b6");
       
               //设置大小
               frame.setSize(500, 500);
               //设置可见
               frame.setVisible(true);
               //将按钮添加到窗体中
               frame.add(b1);
               frame.add(b2);
               frame.add(b3);
               frame.add(b4);
               frame.add(b5);
               frame.add(b6);
               //frame.pack();//系统会选择最好的比例
               //添加监听
               frame.addWindowListener(new WindowAdapter() {
                   @Override
                   public void windowClosing(WindowEvent e) {
                       System.exit(0);
                  }
              });
       
          }
       }
      • 练习

         package cn.ljystudy.GUI.s1;
         
         import java.awt.*;
         
         public class Demo01 {
             public static void main(String[] args) {
                 Frame frame = new Frame();
                 frame.setLayout(new GridLayout(2,1));
                 frame.setSize(500,500);
                 frame.setLocation(100,100);
                 frame.setVisible(true);
         
                 //创建4个画板
                 Panel panel=new Panel();
                 Panel panel2=new Panel();
                 Panel panel3=new Panel();
                 Panel panel4=new Panel();
                 
         
                 //设置button
                 Button b1=new Button("1");
                 Button b2=new Button("2");
                 Button b3=new Button("3");
                 Button b4=new Button("4");
                 Button b5=new Button("5");
                 Button b6=new Button("6");
         
         
         
                 //窗体的操作
                 panel.setLayout(new BorderLayout());
                 frame.add(panel);
                 frame.add(panel2);
                 //画板1的操作
                 panel.add(b3,BorderLayout.EAST);
                 panel.add(panel3,BorderLayout.CENTER);
                 panel.add(b4,BorderLayout.WEST);
                 //画板2
                 panel2.setLayout(new BorderLayout());
                 panel2.add(b5,BorderLayout.EAST);
                 panel2.add(b6,BorderLayout.WEST);
         
                 //画板3
                 panel3.setLayout(new GridLayout(2,1));
                 panel3.add(b1);
                 panel3.add(b2);
                 //画板4
                 panel4.setLayout(new GridLayout(2,2));
                 for(int i=0;i<4;i++){
                     panel4.add(new Button("b"+i));
                }
                 panel2.add(panel4,BorderLayout.CENTER);
         
            }
         }
         

        image-20210823152919179

  3. 监听

     package cn.ljystudy.GUI.s2;
     
     import java.awt.*;
     import java.awt.event.ActionEvent;
     import java.awt.event.ActionListener;
     import java.awt.event.WindowAdapter;
     import java.awt.event.WindowEvent;
     
     public class Listener01 {
         public static void main(String[] args) {
             Frame frame = new Frame();
             Button button = new Button();
     
             frame.setVisible(true);
             frame.setSize(500,500);
             frame.setLocation(100,100);
             frame.add(button);
             //添加一个监听
             button.addActionListener(new MyListener());
             //添加一个关闭方法
             closed(frame);
        }
         public static void closed(Frame frame){
             frame.addWindowListener(new WindowAdapter() {
                 @Override
                 public void windowClosing(WindowEvent e) {
                     System.exit(0);
                }
            });
        }
     }
     class MyListener implements ActionListener{
         @Override
         public void actionPerformed(ActionEvent e) {
             System.out.println("我按了一下");
        }
     }

实现多个按钮使用一个监听

package cn.ljystudy.GUI.s2;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Listener02 {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setLayout(new FlowLayout());
Button button = new Button("star");
Button button1 = new Button("stop");


frame.setVisible(true);
frame.setSize(500,500);
frame.setLocation(100,100);
frame.add(button);
frame.add(button1);

//添加一个监听
button.addActionListener(new imper());
button1.addActionListener(new imper());

//添加一个关闭方法
closed(frame);
}
public static void closed(Frame frame){
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
class imper implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {

System.out.println(e.getActionCommand());//如果没有设置按钮的getActionCommand值,那就得到label值
if(e.getActionCommand().equals("star")){
System.out.println("开始运行");
}
}
}

TextField的监听

package cn.ljystudy.GUI.s2;

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

public class TextListener {
public static void main(String[] args) {
//启动
new MyFrame();
}

}
class MyFrame extends Frame{
MyFrame(){
TextField textField = new TextField();
add(textField);
//按下enter会触发这个文本框的事件
textField.addActionListener(new Listener());
setVisible(true);
pack();
textField.setEchoChar('*');//将输入的文本用*去代替
}
}
//实现监听类
class Listener implements ActionListener {

@Override
public void actionPerformed(ActionEvent e) {
TextField field=(TextField) e.getSource();
System.out.println(field.getText());//获取文本的内容
field.setText("");//讲文本重置
}
}
  • 简易加法计算器

    package cn.ljystudy.GUI.s2;

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

    import static javax.print.attribute.standard.MediaSizeName.A;

    public class Demo1 {
    public static void main(String[] args) {
    //只写启动
    new MyFrame1();
    }

    }
    class MyFrame1 extends Frame{
    MyFrame1(){
    setLayout(new FlowLayout());
    TextField t1=new TextField();
    TextField t2=new TextField();
    TextField t3=new TextField();
    Label l=new Label("+");
    Button b=new Button("=");

    add(t1);
    add(l);
    add(t2);
    add(b);
    b.addActionListener(new MyA(t1,t2,t3));
    add(t3);

    setVisible(true);
    pack();

    }
    }
    class MyA implements ActionListener{
    private TextField t1,t2,t3;
    MyA(TextField t1,TextField t2,TextField t3){
    this.t1=t1;
    this.t2=t2;
    this.t3=t3;
    }
    @Override
    public void actionPerformed(ActionEvent e) {
    //拿到加数和被加数
    int i=Integer.parseInt(t1.getText());
    int j=Integer.parseInt(t2.getText());
    //相加放到第三
    t3.setText(""+(i+j));
    //清空1,2
    t1.setText("");
    t2.setText("");
    }
    }
  • 使用组合

    package cn.ljystudy.GUI.s2;

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

    import static javax.print.attribute.standard.MediaSizeName.A;

    public class Demo1 {
    public static void main(String[] args) {
    //只写启动
    new MyFrame1().Frame1load();
    }

    }
    class MyFrame1 extends Frame{
    //属性
    TextField t1,t2,t3;
    Label l;
    Button b;

    //方法
    public void Frame1load(){

    t1=new TextField();
    t2=new TextField();
    t3=new TextField();
    l=new Label("+");
    b=new Button("=");

    setLayout(new FlowLayout());
    add(t1);
    add(l);
    add(t2);
    add(b);
    b.addActionListener(new MyA(this));
    add(t3);

    setVisible(true);
    pack();

    }
    }
    class MyA implements ActionListener{
    private MyFrame1 myFrame1=null;
    MyA(MyFrame1 myframe1){
    this.myFrame1=myframe1;


    }
    @Override
    public void actionPerformed(ActionEvent e) {
    //拿到加数和被加数
    //相加放到第三
    //清空1,2
    int i=Integer.parseInt(myFrame1.t1.getText());
    int j=Integer.parseInt(myFrame1.t2.getText());
    myFrame1.t3.setText(""+(i+j));
    myFrame1.t1.setText("");
    myFrame1.t2.setText("");

    }
    }
  • 使用内部类

    package cn.ljystudy.GUI.s2;

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

    import static javax.print.attribute.standard.MediaSizeName.A;

    public class Demo1 {
    public static void main(String[] args) {
    //只写启动
    new MyFrame1().Frame1load();
    }

    }
    class MyFrame1 extends Frame{
    //属性
    TextField t1,t2,t3;
    Label l;
    Button b;

    //方法
    public void Frame1load(){

    t1=new TextField();
    t2=new TextField();
    t3=new TextField();
    l=new Label("+");
    b=new Button("=");

    setLayout(new FlowLayout());
    add(t1);
    add(l);
    add(t2);
    add(b);
    b.addActionListener(new MyA());
    add(t3);

    setVisible(true);
    pack();

    }
    private class MyA implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
    //拿到加数和被加数
    //相加放到第三
    //清空1,2
    int i=Integer.parseInt(t1.getText());
    int j=Integer.parseInt(t2.getText());
    t3.setText(""+(i+j));
    t1.setText("");
    t2.setText("");

    }
    }
    }
  1. 画笔

    package cn.ljystudy.GUI.s2;

    import java.awt.*;

    public class pen {
    public static void main(String[] args) {
    new Mypen().FrameLoading();
    }

    }
    class Mypen extends Frame{
    void FrameLoading(){
    setVisible(true);
    setSize(500,500);
    //pack();
    }
    @Override
    public void paint(Graphics g) {
    //将最开始画笔的颜色保存下来
    Color M=g.getColor();
    g.setColor(Color.BLUE);
    g.drawRoundRect(100,100,100,100,20,20);
    g.drawOval(200,200,100,100);
    g.fillOval(300,200,100,100);
    g.fillOval(200,300,100,100);
    g.setColor(M);
    }
    }
    • 画笔练习

      package cn.ljystudy.GUI.s2;

      import java.awt.*;
      import java.awt.event.MouseAdapter;
      import java.awt.event.MouseEvent;
      import java.util.ArrayList;
      import java.util.Iterator;

      public class lianxi {
      public static void main(String[] args) {
      new Myframe11("画图");
      }
      }
      class Myframe11 extends Frame {
      ArrayList point;

      Myframe11(String i){
      super(i);
      setBounds(100,100,500,500);
      setVisible(true);
      this.addMouseListener(new MouseLis() );
      point=new ArrayList<>();
      }
      @Override
      public void paint(Graphics g) {
      Iterator it = point.iterator();
      while(it.hasNext()){
      Point p =(Point)it.next();
      g.setColor(Color.BLUE);
      g.fillOval(p.x,p.y,10,10);

      }

      }
      public void addPoint(Point p){
      point.add(p);
      }
      private class MouseLis extends MouseAdapter {
      @Override
      public void mouseClicked(MouseEvent e) {
      Myframe11 myframe11=(Myframe11) e.getSource();


      addPoint(new Point(e.getX(),e.getY()));
      repaint();

      }
      }
      }
  • 窗口监听

       package cn.ljystudy.GUI.s2;

    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;

    public class WindowLisenter {
    public static void main(String[] args) {
    new MyFrameFirst();
    }

    }
    class MyFrameFirst extends Frame{
    public MyFrameFirst() {

    setVisible(true);
    setBounds(100,100,500,500);
    //this.addWindowListener(new WindowLis());
    this.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }

    @Override
    public void windowActivated(WindowEvent e) {

    setTitle("窗口已被激活");
    }

    });
    }
    class WindowLis extends WindowAdapter{


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

    }



    @Override
    public void windowActivated(WindowEvent e) {
    MyFrameFirst myFrameFirst=(MyFrameFirst) e.getSource();
    setTitle("窗口已被激活");
    }
    }
    }
  • 键盘监听

       package cn.ljystudy.GUI.s2;

    import java.awt.*;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;

    public class KeyListener {
    public static void main(String[] args) {
    new KeyFrame();
    }
    static class KeyFrame extends Frame{
    int y=150;
    @Override
    public void paint(Graphics g) {
    g.fillOval(150,y,20,20);

    }

    public KeyFrame(){
    setVisible(true);
    setBounds(100,100,500,500);
    addKeyListener(new KeyAdapter() {
    @Override
    public void keyPressed(KeyEvent e) {
    int CodeKey=e.getKeyCode();
    if(CodeKey==KeyEvent.VK_UP){
    y-=10;
    System.out.println("我按了上键");
    repaint();
    }
    }

    });

    }

    }
    }

     

Swing

1. 第一个JFrame窗口

package cn.ljystudy.GUI.s3;

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

public class JFrameApplication {
public static void main(String[] args) {
//启动init()
new JFrameApplication().init();
}
public void init(){
JFrame jf=new JFrame("这是我的第一个JFrame窗口");
jf.setBounds(100,100,500,500);
jf.setVisible(true);
JLabel jLabel=new JLabel("欢迎来到我的频道!");

jLabel.setHorizontalAlignment(SwingConstants.CENTER);
jf.add(jLabel);
Container contentPane = jf.getContentPane();
contentPane.setBackground(Color.BLUE);
jf.setBackground(Color.BLUE);
//窗口关闭
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

 

2. 弹窗 JDialog

用于窗口的弹窗,有默认的关闭窗口事件

package cn.ljystudy.GUI.s3;

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

public class JDialogApplication extends JFrame {

public void init(){
setTitle("我的的二个JFrame窗口");
setBounds(100,100,500,500);
setVisible(true);
this.setLayout(null);
JButton jButton=new JButton("弹出一个新窗口");
jButton.setBounds(200,200,150,50);
Container contentPane = this.getContentPane();
contentPane.add(jButton);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new MyDialog();
}
});


}

public static void main(String[] args) {
new JDialogApplication().init();
}
class MyDialog extends JDialog{
public MyDialog() {
setTitle("我是一个弹出来的窗口");
setVisible(true);
setLayout(null);//绝对布局
setBounds(200,200,500,500);
}
}
}

 

3. 标签

  • 图片icon

    package cn.ljystudy.GUI.s3;

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

    public class IConApplication extends JFrame {
    public IConApplication() {
    //获取图片的地址
    JLabel jLabel = new JLabel("我是一个标签");
    URL url = IConApplication.class.getResource("sl.jpg");//先获取图片资源的地址
    ImageIcon imageIcon = new ImageIcon(url);//在生成一个ImageIcon的对象

    jLabel.setIcon(imageIcon);//在将对象赋给标签
    // jLabel.setSize(50,50);这里没办法使用setsize来控制图片的大小
    jLabel.setHorizontalAlignment(SwingConstants.CENTER);//将Jlabel放在中间的位置
    Container container = this.getContentPane();//获取容器

    container.add(jLabel);

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

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

     

4. 面板

  • JPanel

package cn.ljystudy.GUI.s3;

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

public class JPanelApplicaiton extends JFrame {
public JPanelApplicaiton() {
//JFrame的属性
this.setVisible(true);
this.setSize(500,500);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//JFrame的操作都在容器中进行先获取容器
Container container = this.getContentPane();
//然后设置容器的布局
container.setLayout(new GridLayout(2,2,10,10));
//然后添加画板
JPanel jp1 = new JPanel(new GridLayout(1,2,1,1));
JPanel jp2 = new JPanel(new GridLayout(2,2,1,1));
JPanel jp3 = new JPanel(new GridLayout(2,1,1,1));
JPanel jp4 = new JPanel(new GridLayout(3,1,1,1));

//添加按钮
JButton jB1 = new JButton("b1");
JButton jB2 = new JButton("b1");
JButton jB3 = new JButton("b1");
for (int i=0;i<4;i++){
jp2.add(new JButton("b2"));
}
for (int i=0;i<2;i++){
jp3.add(new JButton("b3"));
}
for (int i=0;i<3;i++){
jp4.add(new JButton("b4"));
}

//将按钮添加到画板中
jp1.add(jB1);
jp1.add(jB2);
jp1.add(jB3);

//将画板加到JFrame中
container.add(jp1);
container.add(jp2);
container.add(jp3);
container.add(jp4);
}

public static void main(String[] args) {
new JPanelApplicaiton();
}
}
  • JScrollPane(带滚动条的面板)

package cn.ljystudy.GUI.s3;

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

public class JScrollPaneApplication extends JFrame {
public JScrollPaneApplication() {
this.setBounds(100,100,100,100);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container contentPane = this.getContentPane();
//文本域
JTextArea jt = new JTextArea(20,50);
jt.setText("hello,world");

JScrollPane JscrollPane = new JScrollPane(jt);
contentPane.add(JscrollPane);

}

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

5.按钮

  • JButton

package cn.ljystudy.GUI.s3;

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

public class JButtonApplication extends JFrame {
public JButtonApplication() {
Container contentPane = this.getContentPane();

URL url1 = JButtonApplication.class.getResource("sl.jpg");
ImageIcon iI= new ImageIcon(url1);
JButton jb = new JButton("图片按钮");
jb.setIcon(iI);
jb.setToolTipText("这是一个图片按钮");

contentPane.add(jb);

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

}

public static void main(String[] args) {
new JButtonApplication();
}
}
  • 单选按钮

package cn.ljystudy.GUI.s3;

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

public class JButtonApplication2 extends JFrame {
public JButtonApplication2() {
Container contentPane = this.getContentPane();

URL url1 = JButtonApplication2.class.getResource("sl.jpg");
ImageIcon iI= new ImageIcon(url1);

JRadioButton jrb1 = new JRadioButton("jrb1");
JRadioButton jrb2 = new JRadioButton("jrb2");
JRadioButton jrb3 = new JRadioButton("jrb3");
ButtonGroup bg = new ButtonGroup();//单选按钮需要一个组来装,因为一个组里只能选择以一个
bg.add(jrb1);
bg.add(jrb2);
bg.add(jrb3);

contentPane.add(jrb1,BorderLayout.NORTH);
contentPane.add(jrb2,BorderLayout.CENTER);
contentPane.add(jrb3,BorderLayout.SOUTH);


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

}

public static void main(String[] args) {
new JButtonApplication2();
}
}
  • 复选按钮

package cn.ljystudy.GUI.s3;

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

public class JButtonApplication2 extends JFrame {
public JButtonApplication2() {
Container contentPane = this.getContentPane();

URL url1 = JButtonApplication2.class.getResource("sl.jpg");
ImageIcon iI= new ImageIcon(url1);

JCheckBox jcb1 = new JCheckBox("jrb1");
JCheckBox jcb2 = new JCheckBox("jrb2");
JCheckBox jcb3 = new JCheckBox("jrb3");


contentPane.add(jcb1,BorderLayout.NORTH);
contentPane.add(jcb2,BorderLayout.CENTER);
contentPane.add(jcb3,BorderLayout.SOUTH);


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

}

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

6.列表

  • 下拉框

package cn.ljystudy.GUI.s4;

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

public class JComBoBoxApplication extends JFrame{
public JComBoBoxApplication() {
Container container = this.getContentPane();
JComboBox jcb = new JComboBox();
jcb.addItem(null);
jcb.addItem("1");
jcb.addItem("3");
jcb.addItem("2");

container.add(jcb);

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

public static void main(String[] args) {
new JComBoBoxApplication();
}
}
  • 列表框

package cn.ljystudy.GUI.s4;

import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.util.Vector;

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

Vector a=new Vector();
JList jList = new JList(a);
a.add("1");
a.add("2");

container.add(jList);
this.setVisible(true);
this.setBounds(100,100,1000,1000);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}

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

7.文本框

  • 文本框

package cn.ljystudy.GUI.s4;

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

public class JTextFileApplication extends JFrame {
public JTextFileApplication() {
Container container = this.getContentPane();
JTextField jtf = new JTextField("hello");
JTextField jtf1 = new JTextField("world");

container.add(jtf,BorderLayout.NORTH);
container.add(jtf1,BorderLayout.SOUTH);

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


}

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

 

  • 密码框

package cn.ljystudy.GUI.s4;

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

public class JPasswordFieldApplication extends JFrame {
public JPasswordFieldApplication() {
Container container = this.getContentPane();
JPasswordField jpf = new JPasswordField();
jpf.setEchoChar('*');//这里默认的密码遮挡是······set之后为***
container.add(jpf);

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

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

 

 

posted on 2021-11-23 10:22  正在学习的小刘  阅读(48)  评论(0)    收藏  举报

导航