ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Swing

2021-12-04 19:01:34  阅读:166  来源: 互联网

标签:container Swing JButton add import new public


Swing

  • Swing 是一个为Java设计的GUI工具包。

  • Swing是JAVA基础类的一部分。

  • Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。

  • Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。轻量级组件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。

界面

package com.ar.chapter03;
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(100,100,400,200);
      this.setVisible(true);
      JLabel jLabel=new JLabel("阿娆");
      this.add(jLabel);
      //文本居中
      jLabel.setHorizontalAlignment(SwingConstants.CENTER);
      Container container= this.getContentPane();
      container.setBackground(Color.red);
  }
}
package com.ar.chapter03;

import javax.swing.*;
import java.awt.*;
public class JFrameDome {
   //初始化
   public void init(){
       JFrame jFrame=new JFrame("Swing窗口");
       jFrame.setVisible(true);
       jFrame.setBounds(100,100,400,200);
       //设置文字
       JLabel jLabel=new JLabel("ar");

       jFrame.add(jLabel);
       //容器实例化
       jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  }
   public static void main(String[] args) {
       new JFrameDome().init();
  }
}

弹窗

image-20211204171354176

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

public class DialongDemo extends JFrame {
  //
  public DialongDemo(){
      this.setVisible(true);
      this.setSize(700,1500);
      this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      //放入新窗口
      Container container = this.getContentPane();
      //绝对布局
      container.setLayout(null);
      //按钮
      JButton button = new JButton("弹出窗口");
      button.setBounds(30,30,200,50);
      //监听事件,点击是弹出一个弹窗
      button.addActionListener(new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
              //弹窗
              new MyDialogDemo();
          }
      });
      container.add(button);
   

  }
  public static void main(String[] args) {
      new DialongDemo();
  }
}
//弹窗的窗口
class MyDialogDemo extends JDialog {
  public MyDialogDemo(){
      this.setVisible(true);
      this.setSize(100,100);
      this.setBounds(100,100,500,500);
    // this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      Container container = new Container();
      container.setLayout(null);
      container.add(new Label("阿娆"));

  }
}

image-20211204172050232

点击按钮,弹出弹窗

标签

label

new label("阿娆")

图标Icon

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

//图标是个接口,需要实现类,Frame继承
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 label = new JLabel("icontest", iconDemo, SwingConstants.CENTER);

      Container container = getContentPane();
      container.add(label);

      this.setVisible(true);
      this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  }

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

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

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

  public static void main(String[] args) {
      new IconDemo().init();
  }

}

image-20211204173939470

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

public class IconDemo0 extends JFrame {
   public IconDemo0() {
       //获取图片地址
       JLabel label = new JLabel("ImageIcon");
       URL url = IconDemo0.class.getResource("某个图片的位置");
       ImageIcon imageIcon = new ImageIcon(url);
       label.setIcon(imageIcon);
       label.setHorizontalAlignment(SwingConstants.CENTER);

       Container container = getContentPane();
       container.add(label);
       setVisible(true);
       setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  }

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

面板

JPanel

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

public class Panel extends JFrame
{

           public Panel() {
           Container container = this.getContentPane();
           container.setLayout(new GridLayout(2, 1, 10, 10)); //后面的参数是间距

           JPanel panel1 = new JPanel(new GridLayout(1, 3));
           JPanel panel2 = new JPanel(new GridLayout(1, 2));
           JPanel panel3 = new JPanel(new GridLayout(2, 1));
           JPanel panel4 = new JPanel(new GridLayout(3, 2));

           panel1.add(new JButton("1"));
           panel1.add(new JButton("1"));
           panel1.add(new JButton("1"));
           panel2.add(new JButton("1"));
           panel2.add(new JButton("1"));
           panel3.add(new JButton("1"));
           panel3.add(new JButton("1"));
           panel4.add(new JButton("1"));
           panel4.add(new JButton("1"));
           panel4.add(new JButton("1"));
           panel4.add(new JButton("1"));
           panel4.add(new JButton("1"));
           panel4.add(new JButton("1"));

           container.add(panel1);
           container.add(panel2);
           container.add(panel3);
           container.add(panel4);

           this.setVisible(true);
           this.setSize(200, 200);
           this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      }

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

image-20211204174825459

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

public class Panel02 extends JFrame{
   public Panel02() {
       Container container = this.getContentPane();
       JTextArea textArea = new JTextArea(20, 50);
       textArea.setText("JTextArea");

       JScrollPane scrollPane = new JScrollPane(textArea);

       container.add(scrollPane);


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

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

image-20211204175418524

按钮

图片按钮

   public class JButtonDemo01 extends JFrame {
   public JButtonDemo01() {
       Container container = this.getContentPane();
       URL url = JButtonDemo01.class.getResource("tx.jpg");
       Icon icon = new ImageIcon(url);
  //把图标放到按钮上
   JButton button = new JButton();
   button.setIcon(icon);
   button.setToolTipText("图片按钮");

   container.add(button);

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

单选按钮

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

public class JButtonDemo02 extends JFrame {
  public JButtonDemo02() {
      Container container = this.getContentPane();
      //单选框
      JRadioButton jRadioButton1 = new JRadioButton("01");
      JRadioButton jRadioButton2 = new JRadioButton("02");
      JRadioButton jRadioButton3 = new JRadioButton("03");
      //由于单选框只能选择一个,分组一个组中只能
      // 刚掉选一个可以多选啦
//       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();
  }
}

多线按钮

public class JButtonDemo02 extends JFrame {
  public JButtonDemo02() {
      Container container = this.getContentPane();
      Checkbox checkbox1 = new Checkbox("01");//单词
      Checkbox checkbox2 = new Checkbox("02");
      container.add(checkbox1, BorderLayout.NORTH);
      container.add(checkbox2, BorderLayout.SOUTH);
      this.setVisible(true);
      this.setSize(500, 500);
      this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  }
  public static void main(String[] args) {
      new JButtonDemo02();
  }
}

image-20211204182643036

image-20211204182655771

列表

 

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

class TestComboboxDemo01 extends JFrame {
  public TestComboboxDemo01() {
      Container container = this.getContentPane();
      JComboBox status = new JComboBox();
      status.addItem(null);
      status.addItem("阿娆就很漂亮");
      status.addItem("阿娆太漂亮了");
      pack();
      container.add(status);
      this.setVisible(true);
      this.setSize(500, 500);
      this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  }

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

image-20211204183338283

列表框

public class TestComboboxDemo02 extends JFrame {
   public TestComboboxDemo02() {

       Container container = this.getContentPane();

       //生成列表的内容
       //String[] contents = {"1", "2", "3", "4"};
       //列表中需要放入内容
       JList jList = new JList(contents);
       //container.add(jList);
container.add("某某1");
container.add("某某2");
container.add("某某3");

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

   public static void main(String[] args) {
       new TestComboboxDemo02();
  }
}
  • 应用场景

    • 选自地区,或一些单个选项

    • 列表,展示信息,一般是动态扩容

文本框

找到一个偷懒神器就这一次

 

 

标签:container,Swing,JButton,add,import,new,public
来源: https://www.cnblogs.com/ar000517/p/15642893.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有