一、JLabel

案例运行结果

Java的Swing基本控件

 

 

 

 

 MyFrame.java

package swingkongjian;

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

public class MyFrame extends JFrame {

    public MyFrame(String title){
        super(title);
        //内容面板
        Container contentPane=getContentPane();
        contentPane.setLayout(new FlowLayout());

        //向内容面板添加控件
        JLabel label= new JLabel();
        contentPane.add(label);

        label.setText("百度官网");
        label.setFont(new Font("微软雅黑",0,14));
        label.setForeground(Color.BLUE);
        label.setToolTipText("https://www.baidu.com");
    }

}

SwingDemo.java

package swingkongjian;

import javax.swing.*;

public class SwingDemo {
    private static void createGUI(){

        //JFrame指一个窗口,构造方法的参数为窗口标题
        MyFrame frame=new MyFrame("swing demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //设置窗口的其它参数,如窗口大小
        frame.setSize(400,300);

        //显示窗口
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                createGUI();
            }
        });
    }
}

二、JButton与点击事件的实现

案例运行结果

Java的Swing基本控件

 

 MyFrame2.java

package swingkongjian;

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

public class MyFrame2 extends JFrame {
    JLabel label= new JLabel("姓名");
    //16表示16列,计算宽度显示,而不是输入字符的个数限制
    JTextField jTextField=new JTextField(16);
    JButton button=new JButton("确定");
    public MyFrame2(String title){
        super(title);
        //内容面板
        Container contentPane=getContentPane();
        contentPane.setLayout(new FlowLayout());

        //向内容面板添加控件
        contentPane.add(label);
        contentPane.add(jTextField);
        contentPane.add(button);

        //添加点击事件
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                onButtonOK();
            }
        });
    }

    //事件处理
    private void onButtonOK() {
        String str=jTextField.getText();
        JOptionPane.showMessageDialog(this,"输入了"+str);
    }
}

SwingDemo02.java

package swingkongjian;

import javax.swing.*;

public class SwingDemo02 {
    private static void createGUI(){

        //JFrame指一个窗口,构造方法的参数为窗口标题
        MyFrame2 frame=new MyFrame2("swing demo02");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //设置窗口的其它参数,如窗口大小
        frame.setSize(600,400);

        //显示窗口
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                createGUI();
            }
        });
    }
}

三、JCheckBox

案例运行结果

Java的Swing基本控件

 

 Java的Swing基本控件

 

 MyFrame3.java

package swingkongjian;

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

public class MyFrame3 extends JFrame {
    JCheckBox cbx=new JCheckBox("我想订阅邮件通知");
    JTextField email=new JTextField(16);
    public MyFrame3(String title){
        super(title);
        //内容面板
        Container contentPane =getContentPane();
        contentPane.setLayout(new FlowLayout());
        //添加控件
        contentPane.add(cbx);
        contentPane.add(email);
        //默认选中
        cbx.setSelected(true);
        email.setToolTipText("请输入邮箱地址");

        cbx.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //如果未选中,则禁用文本框
                if (cbx.isSelected()){
                    email.setEnabled(true);
                }else {
                    email.setEnabled(false);
                }
            }
        });
    }
}

SwingDemo03.java

package swingkongjian;

import javax.swing.*;

public class SwingDemo03 {
    private static void createGUI(){
        MyFrame3 frame=new MyFrame3("swing demo03");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setSize(600,400);

        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                createGUI();
            }
        });
    }
}

四、JComboBox

案例运行结果

Java的Swing基本控件

 

 Java的Swing基本控件

 

 

Java的Swing基本控件

 

 MyFrame4.java

package swingkongjian;

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

public class MyFrame4 extends JFrame {
    //JComboBox是一个泛型,参数类型是数据项的类型
    JComboBox<String> colorList =new JComboBox<>();
    JLabel sampleText=new JLabel("文本样式,this is a simple");
    public MyFrame4(String title){
        super(title);
        //内容面板
        Container contentPane=getContentPane();
        contentPane.setLayout(new FlowLayout());
        //添加控件
        contentPane.add(colorList);
        contentPane.add(sampleText);

        //向JComboBox中添加数据
        colorList.addItem("红色");
        colorList.addItem("蓝色");
        colorList.addItem("绿色");
        
        UpdateTextColor();

        //下拉列表的事件处理
        colorList.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                UpdateTextColor();
            }
        });
    }

    private void UpdateTextColor() {
        //更新JLabel的颜色显示

        //获取选中的颜色
        String item=(String) colorList.getSelectedItem();
        //根据选中的颜色,设置JLabel的文字颜色
        Color color=null;
        if (item.equals("红色")){
            color=Color.RED;
        }else if (item.equals("蓝色")){
            color=Color.BLUE;
        }else if (item.equals("绿色")){
            color=Color.GREEN;
        }
        sampleText.setForeground(color);
    }
}

对其进行优化

MyFrame5.java

package swingkongjian;

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

public class MyFrame5  extends JFrame {
    JComboBox<ListOption> colorList=new JComboBox<>();

    JLabel sampleText=new JLabel("文本样式,this is a simple");
    public MyFrame5(String title){
        super(title);
        //内容面板
        Container contentPane=getContentPane();
        contentPane.setLayout(new FlowLayout());
        //添加控件
        contentPane.add(colorList);
        contentPane.add(sampleText);

        //向JComboBox中添加数据
        colorList.addItem(new ListOption("红色",Color.RED));
        colorList.addItem(new ListOption("蓝色",Color.BLUE));
        colorList.addItem(new ListOption("绿色",Color.GREEN));

        UpdateTextColor();

        //下拉列表的事件处理
        colorList.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                UpdateTextColor();
            }
        });
    }

    private void UpdateTextColor() {
        //更新JLabel的颜色显示

        //获取选中的颜色
        ListOption item=(ListOption) colorList.getSelectedItem();
        //根据选中的颜色,设置JLabel的文字颜色
        sampleText.setForeground(item.color);
    }
    private static class ListOption{
        /**
         * 这个类是用来表示列表项
         */
        public String text;
        public Color color;
        public ListOption(String text,Color color){
            this.text=text;
            this.color=color;
        }

        @Override
        public String toString() {
            return this.text;
        }
    }
}

SwingDemo04.java

package swingkongjian;

import javax.swing.*;

public class SwingDemo04 {
    private static void CreateGUI(){
        MyFrame4 frame=new MyFrame4("SwingDemo04");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setSize(600,400);

        frame.setVisible(true);

    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                CreateGUI();
            }
        });
    }
}
View Code

相关文章:

  • 2021-09-06
  • 2021-10-25
  • 2021-04-12
  • 2022-12-23
  • 2021-12-04
  • 2021-07-09
  • 2021-08-08
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-01
  • 2021-11-12
  • 2022-02-07
  • 2021-06-18
相关资源
相似解决方案