10.Swing 之 JFrame

1.Swing之JFrame窗体

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

public class Dome01 {
   public static void main(String[] args) {
       new Dome01().init();
  }
   public void init(){
       JFrame JF = new JFrame();
       JF.setVisible(true);
       JF.setBounds(500,500,500,500);
       //关闭事件
       JF.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

       JLabel jlabel = new JLabel("测试");

       //容器
       Container container = JF.getContentPane();
       //容器添加label
       container.add(jlabel);
       //文本居中
       jlabel.setHorizontalAlignment(SwingConstants.CENTER);

  }
}

 

2.弹窗

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

public class Dome02 {
   public Dome02(){
       //JFrame窗口
       JFrame jFrame = new JFrame();
       jFrame.setBounds(300,300,300,300);
       jFrame.setVisible(true);
       jFrame.setDefaultCloseOperation(3);//关闭事件

       //按钮
       JButton jButton = new JButton("弹出新窗口");
       jButton.setBounds(50,50,100,50);
       jButton.addActionListener(new ActionListener() {//监听按钮事件
           @Override
           public void actionPerformed(ActionEvent e) {
               new newDialog();
          }
      });

       //容器
       Container container = jFrame.getContentPane();
       container.add(jButton);
       container.setLayout(null);//绝对定位
  }

   public static void main(String[] args) {
       new Dome02();
  }
}
//新弹窗类
class newDialog extends JDialog{
   public newDialog(){
       this.setBounds(350,350,150,150);
       this.setVisible(true);
       Container container = this.getContentPane();
  }
}

 

3.图标label(画笔实现图标)

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

//继承JFrame 实现Icon 类
public class Dome03 extends JFrame implements Icon {
   private int whdth;
   private int height;

   public Dome03() {
  }

   //有参构造 传入图标宽高
   public Dome03(int whdth, int height) {
       this.whdth = whdth;
       this.height = height;
  }

   //初始化
   public void init() {
       Dome03 dome03 = new Dome03(10, 10);//调用有参构造方法
       JLabel label = new JLabel("icon", dome03, SwingConstants.CENTER);//label 文本 图标 对齐方式
       //创建容器
       Container container = getContentPane();
       container.add(label);//容器添加label
       setVisible(true);
       setBounds(100,100,100,100);
  }

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

   @Override
   public void paintIcon(Component c, Graphics g, int x, int y) {
       //画笔画图标
       g.fillOval(x, y, whdth, height);
       g.setColor(Color.blue);

  }

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

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

 

4.图标label(图片实现图标)

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

public class Dome04 extends JFrame {
   public Dome04() {
       //获取到图片
       URL url = Dome04.class.getResource("TX.jpg");
       //图片转为icon
       ImageIcon imageIcon = new ImageIcon(url);

       //创建一个label
       JLabel label = new JLabel("图片label");
       //设置lable的图标
       label.setIcon(imageIcon);

       //创建一个容器
       Container container = this.getContentPane();
       container.add(label);//容器添加label
       setVisible(true);
       setBounds(500, 500, 500, 500);
  }

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

 

5.文本域 JScroll 面板

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

public class Dome05 extends JFrame {
   public Dome05() {
       //容器
       Container container = this.getContentPane();

       //文本域
       JTextArea jTextArea = new JTextArea();
       jTextArea.setText("文本域");

       //JScroll面板
       JScrollPane jScrollPane = new JScrollPane(jTextArea);

       //JScroll面板添加到容器里面
       container.add(jScrollPane);

       setBounds(500,500,200,200);
       setVisible(true);
       setDefaultCloseOperation(3);
  }

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

 

当文本超出大小,即会出现滚动条,前提条件是把文本域的放到JScroll面板才会出现滚动条,在new JScroll面板的时候就要把文本域放进去

6.图片按钮、单选框、复选框

6-1:图片按钮

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

public class Dome07 extends JFrame{
   public Dome07() {
       URL url = Dome07.class.getResource("Tx.jpg");//获取图片url
       ImageIcon imageIcon = new ImageIcon(url);//生成icon
       JButton jButton = new JButton();
       jButton.setIcon(imageIcon);//按钮设置图标

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

       setVisible(true);
       setBounds(500,500,500,500);
  }

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

 

6-2:单选框

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

public class Dome06 extends JFrame{

   public Dome06() {
       //创建容器
       Container container = getContentPane();

       //单选按钮
       JRadioButton radioButton1 = new JRadioButton("男");
       JRadioButton radioButton2 = new JRadioButton("女");

       //分组
       ButtonGroup buttonGroup = new ButtonGroup();
       buttonGroup.add(radioButton1);
       buttonGroup.add(radioButton2);

       //容器添加按钮
       container.add(radioButton1);
       container.add(radioButton2);
       //流式布局~居中
       container.setLayout(new FlowLayout(FlowLayout.CENTER));

       setBounds(100,100,200,200);
       setVisible(true);

  }

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

 

6-3:复选框

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

public class Dome08 extends JFrame {
   public Dome08() {
       //创建容器
       Container container = getContentPane();
   
       //复选框
       JCheckBox jCheckBox1 = new JCheckBox("游泳");
       JCheckBox jCheckBox2 = new JCheckBox("羽毛球");

       container.add(jCheckBox1);
       container.add(jCheckBox2);
       
       setLayout(new FlowLayout(FlowLayout.CENTER));
       setBounds(500,500,200,200);
       setVisible(true);
  }

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

 

7.下拉框、列表

7-1:下拉框

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

public class Dome09 extends JFrame {
   public Dome09(){
       //创建容器
       Container container = getContentPane();

       //下拉框
       JComboBox jComboBox = new JComboBox();
       //添加下拉选项
       jComboBox.addItem("1");
       jComboBox.addItem("2");
       jComboBox.addItem("3");

       container.add(jComboBox);
       setVisible(true);
  }

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

 

7-2:列表框

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

public class Dome10 extends JFrame {
   public Dome10() {
       Container container = getContentPane();

       //生成列表内容
       String[] content = {"1","2","3"};
       //添加到列表
       JList jList = new JList(content);

       container.add(jList);
       setVisible(true);
  }

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

 

 

posted @ 2022-04-03 14:09  阳光下的承诺  阅读(329)  评论(0)    收藏  举报