最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Swing程序設(shè)計(jì)實(shí)戰(zhàn)

 更新時(shí)間:2021年05月18日 15:11:02   作者:Tomas·Wilson  
今天教大家怎么用JavaSwing工具包實(shí)現(xiàn)一個(gè)程序的界面設(shè)計(jì),文中有非常詳細(xì)的代碼示例及注釋,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下

一、按鈕組件

1.1 提交按鈕組件

package swing;

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

import javax.swing.*;

public class JButtonTest extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public JButtonTest() {
		URL url = JButtonTest.class.getResource("imageButton.jpg");
		Icon icon = new ImageIcon(url);
		setLayout(new GridLayout(3, 2, 5, 5)); // 設(shè)置網(wǎng)格布局管理器
		Container c = getContentPane(); // 創(chuàng)建容器
		for (int i = 0; i < 5; i++) {
			// 創(chuàng)建按鈕,同時(shí)設(shè)置按鈕文字與圖標(biāo)
			JButton J = new JButton("button" + i, icon);
			c.add(J); // 在容器中添加按鈕
			if (i % 2 == 0) {
				J.setEnabled(false); // 設(shè)置其中一些按鈕不可用
			}
		}
		JButton jb = new JButton(); // 實(shí)例化一個(gè)沒有文字與圖片的按鈕
		jb.setMaximumSize(new Dimension(90, 30)); // 設(shè)置按鈕與圖片相同大小
		jb.setIcon(icon); // 為按鈕設(shè)置圖標(biāo)
		jb.setHideActionText(true);
		jb.setToolTipText("圖片按鈕"); // 設(shè)置按鈕提示為文字
		jb.setBorderPainted(false); // 設(shè)置按鈕邊界不顯示
		jb.addActionListener(new ActionListener() { // 為按鈕添加監(jiān)聽事件
			public void actionPerformed(ActionEvent e) {
				// 彈出確認(rèn)對(duì)話框
				JOptionPane.showMessageDialog(null, "彈出對(duì)話框");
			}
		});
		c.add(jb); // 將按鈕添加到容器中

		setTitle("創(chuàng)建帶文字與圖片的按鈕");
		setSize(350, 150);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
	}

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

在這里插入圖片描述

1.2 復(fù)選框組件

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

import javax.swing.*;

public class CheckBoxTest extends JFrame {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private JPanel panel1 = new JPanel();
    private JPanel panel2 = new JPanel();
    private JTextArea jt = new JTextArea(3, 10);
    private JCheckBox jc1 = new JCheckBox("1");
    private JCheckBox jc2 = new JCheckBox("2");
    private JCheckBox jc3 = new JCheckBox("3");
    public CheckBoxTest() {
        Container c = getContentPane();

        c.setLayout(new BorderLayout());

        c.add(panel1, BorderLayout.NORTH);
        final JScrollPane scrollPane = new JScrollPane(jt);
        panel1.add(scrollPane);

        c.add(panel2, BorderLayout.SOUTH);
        panel2.add(jc1);
        jc1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (jc1.isSelected())
                    jt.append("復(fù)選框1被選中\(zhòng)n");
            }
        });

        panel2.add(jc2);
        jc2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (jc2.isSelected())
                    jt.append("復(fù)選框2被選中\(zhòng)n");
            }
        });

        panel2.add(jc3);
        jc3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (jc3.isSelected())
                    jt.append("復(fù)選框3被選中\(zhòng)n");
            }
        });

        setSize(200, 160);
        setVisible(true);
        setTitle("復(fù)選框的使用");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

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

    }

}

在這里插入圖片描述

二、列表組件

2.1 JComboBox類

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

public class JComboBoxModelTest extends JFrame {
	private static final long serialVersionUID = 1L;
	JComboBox<String> jc = new JComboBox<>(new MyComboBox());
	JLabel jl = new JLabel("請(qǐng)選擇證件");

	public JComboBoxModelTest() {
		setSize(new Dimension(160, 180));
		setVisible(true);
		setTitle("在窗口中設(shè)置下拉列表框");
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		Container cp = getContentPane();
		cp.setLayout(new FlowLayout());
		cp.add(jl);
		cp.add(jc);
	}

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

	}

}

class MyComboBox extends AbstractListModel<String> implements ComboBoxModel<String> {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	String selecteditem = null;
	String[] test = { "身份證", "軍人證", "學(xué)生證", "工作證" };

	public String getElementAt(int index) {
		return test[index];
	}

	public int getSize() {
		return test.length;
	}

	public void setSelectedItem(Object item) {
		selecteditem = (String) item;
	}

	public Object getSelectedItem() {
		return selecteditem;
	}

	public int getIndex() {
		for (int i = 0; i < test.length; i++) {
			if (test[i].equals(getSelectedItem()))
				return i;
		}
		return 0;
	}
}

在這里插入圖片描述

2.2 列表框組件

import java.awt.*;

import javax.swing.*;

public class JListTest extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public JListTest() {
		Container cp = getContentPane();
		
		cp.setLayout(null);
		JList<String> jl = new JList<>(new MyListModel());
		JScrollPane js = new JScrollPane(jl);
		js.setBounds(10, 10, 100, 100);
		cp.add(js);
		setTitle("在這個(gè)窗體中使用了列表框");
		setSize(200, 150);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
	}
	
	public static void main(String args[]) {
		new JListTest();
	}
}

class MyListModel extends AbstractListModel<String> {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String[] contents = { "列表1", "列表2", "列表3", "列表4", "列表5", "列表6" };
	
	public String getElementAt(int x) {
		if (x < contents.length)
			return contents[x++];
		else
			return null;
	}
	
	public int getSize() {
		return contents.length;
	}
}

在這里插入圖片描述

三、文本組件

3.1 文本框組件

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

import javax.swing.*;

public class JTextFieldTest extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public JTextFieldTest() {
		setSize(250, 100);
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		Container cp = getContentPane();
		getContentPane().setLayout(new FlowLayout());
		final JTextField jt = new JTextField("aaa", 20);
		final JButton jb = new JButton("清除");
		cp.add(jt);
		cp.add(jb);
		jt.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				// TODO 自動(dòng)生成方法存根
				jt.setText("觸發(fā)事件");
			}
		});
		jb.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				jt.setText("");
				jt.requestFocus();
			}
		});
		setVisible(true);
	}

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

在這里插入圖片描述

3.2 密碼框

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

import javax.swing.*;

public class JTextFieldTest extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public JTextFieldTest() {
		setSize(250, 100);
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		Container cp = getContentPane();
		getContentPane().setLayout(new FlowLayout());
//		final JTextField jt=new JTextField("aaa",20);
		JPasswordField jp = new JPasswordField("", 20);
		jp.setEchoChar('*');
		final JButton jb = new JButton("清除");

		cp.add(jp);
		cp.add(jb);
		jp.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				// TODO 自動(dòng)生成方法存根
				jp.setText("觸發(fā)事件");
			}
		});
		jb.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				jp.setText("");
				jp.requestFocus();
			}
		});
		setVisible(true);
	}

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

在這里插入圖片描述

3.3 文本域組件

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

public class JTextAreaTest extends JFrame {
	public JTextAreaTest() {
		setSize(200, 100);
		setTitle("定義自動(dòng)換行的文本域");
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		Container cp = getContentPane();
		JTextArea jt = new JTextArea("文本域", 6, 6);
		jt.setLineWrap(true);
		cp.add(jt);
		setVisible(true);
	}

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

	}

}

在這里插入圖片描述

四、常用時(shí)間監(jiān)聽器

4.1 動(dòng)作事件監(jiān)聽器

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

import javax.swing.*;

public class SimpleEvent extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JButton jb = new JButton("我是按鈕,點(diǎn)擊我");

	public SimpleEvent() {
		setLayout(null);
		setSize(200, 100);
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		Container cp = getContentPane();
		cp.add(jb);
		jb.setBounds(10, 10, 100, 30);
		jb.addActionListener(new jbAction());
		setVisible(true);
	}

	class jbAction implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			jb.setText("我被單擊了");
		}
	}

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

在這里插入圖片描述

在這里插入圖片描述

4.2 焦點(diǎn)事件監(jiān)聽器

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

import javax.swing.*;

public class FocusEventTest extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public FocusEventTest() {
		setSize(250, 100);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		Container cp = getContentPane();
		getContentPane().setLayout(new FlowLayout());

		final JLabel label = new JLabel();
		getContentPane().add(label);
		JTextField jt = new JTextField("請(qǐng)單擊其他文本框", 10);
		JTextField jt2 = new JTextField("請(qǐng)單擊我", 10);
		cp.add(jt);
		cp.add(jt2);
		jt.addFocusListener(new FocusListener() {
			// 組件失去焦點(diǎn)時(shí)調(diào)用的方法
			public void focusLost(FocusEvent arg0) {
				JOptionPane.showMessageDialog(null, "文本框失去焦點(diǎn)");
			}

			// 組件獲取鍵盤焦點(diǎn)時(shí)調(diào)用的方法
			public void focusGained(FocusEvent arg0) {
			}
		});
		setVisible(true);
	}

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

}

在這里插入圖片描述
在這里插入圖片描述

到此這篇關(guān)于JavaSwing實(shí)現(xiàn)程序界面設(shè)計(jì)的文章就介紹到這了,更多相關(guān)JavaSwing程序界面設(shè)計(jì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Tomcat中session的管理機(jī)制

    Tomcat中session的管理機(jī)制

    這篇文章主要為大家詳細(xì)介紹了Tomcat中session的管理機(jī)制 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Jenkins安裝與配置及漢化過程

    Jenkins安裝與配置及漢化過程

    這篇文章主要介紹了Jenkins安裝與配置及漢化過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • IDEA2022性能優(yōu)化的一些設(shè)置技巧

    IDEA2022性能優(yōu)化的一些設(shè)置技巧

    這篇文章主要介紹了IDEA2022性能優(yōu)化的一些設(shè)置,需要的朋友可以參考下
    2022-08-08
  • SpringBoot整合OpenCV的實(shí)現(xiàn)示例

    SpringBoot整合OpenCV的實(shí)現(xiàn)示例

    這篇文章主要介紹了SpringBoot整合OpenCV的實(shí)現(xiàn)示例。文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 一篇文章帶你了解Java Stream流

    一篇文章帶你了解Java Stream流

    Stream流是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列。這篇文章主要介紹了Java8新特性Stream流的相關(guān)資料,需要的朋友參考下吧
    2021-08-08
  • 以實(shí)例簡(jiǎn)介Java中線程池的工作特點(diǎn)

    以實(shí)例簡(jiǎn)介Java中線程池的工作特點(diǎn)

    這篇文章主要介紹了以實(shí)例簡(jiǎn)介Java中線程池的工作特點(diǎn),線程池是Java實(shí)現(xiàn)多線程編程的基礎(chǔ),需要的朋友可以參考下
    2015-09-09
  • 在IDEA中創(chuàng)建跑得起來的Springboot項(xiàng)目

    在IDEA中創(chuàng)建跑得起來的Springboot項(xiàng)目

    這篇文章主要介紹了在IDEA中創(chuàng)建跑得起來的Springboot項(xiàng)目的圖文教程,需要的朋友可以參考下
    2018-04-04
  • java CompletableFuture實(shí)現(xiàn)異步編排詳解

    java CompletableFuture實(shí)現(xiàn)異步編排詳解

    這篇文章主要為大家介紹了java CompletableFuture實(shí)現(xiàn)異步編排詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Java實(shí)現(xiàn)簡(jiǎn)單的模板渲染

    Java實(shí)現(xiàn)簡(jiǎn)單的模板渲染

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單的模板渲染的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • SpringBoot中最常用的5個(gè)內(nèi)置對(duì)象使用方法

    SpringBoot中最常用的5個(gè)內(nèi)置對(duì)象使用方法

    這篇文章主要給大家介紹了關(guān)于SpringBoot中最常用的5個(gè)內(nèi)置對(duì)象使用的相關(guān)資料,在學(xué)習(xí)springboot的過程中,發(fā)現(xiàn)了springboot非常多的優(yōu)點(diǎn)和特性,需要的朋友可以參考下
    2023-08-08

最新評(píng)論

迁西县| 武陟县| 清远市| 重庆市| 遂川县| 乌苏市| 北安市| 维西| 清新县| 濉溪县| 怀宁县| 太谷县| 焦作市| 崇义县| 会宁县| 荆门市| 承德市| 丰镇市| 中牟县| 永胜县| 丰镇市| 海阳市| 大庆市| 长汀县| 同心县| 甘南县| 宜宾县| 遂溪县| 宜昌市| 定日县| 长海县| 瓮安县| 宜兰市| 长葛市| 合江县| 五华县| 淄博市| 吉林省| 上杭县| 普陀区| 正蓝旗|