Java裏Swing的按鈕練習代碼(5)

普通按鈕(JButton

  • 代碼部分
package top.linksinke.test;

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;

/**
 * JButton 按鈕的使用<br/>
 * create by LINKSINKE on 2020/2/28
 */
public class JButtonTest extends JFrame {
	public JButtonTest() {
		this.setBounds(20, 20, 600, 300);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container ctainer = this.getContentPane();
		ctainer.setLayout(new GridLayout(2, 4, 8, 20));
		JButton jbtn[] = new JButton[8];
		for (int i = 0; i < jbtn.length; i++) {
			jbtn[i] = new JButton();
			ctainer.add(jbtn[i]);
		}

		jbtn[0].setText("禁用中...");
		jbtn[0].setEnabled(false);// 爲禁用狀態

		jbtn[1].setText("綠色背景");
		jbtn[1].setBackground(Color.GREEN); // 綠色背景色

		jbtn[2].setText("帶邊框");
		// 邊框線寬度爲10,顏色爲黃顏色
		jbtn[2].setBorder(BorderFactory.createLineBorder(Color.YELLOW, 10));

		jbtn[3].setText("無邊框");
		jbtn[3].setBorderPainted(false); // 沒有邊框

		jbtn[4].setText("有圖片");
		jbtn[4].setIcon(new ImageIcon("src/btn.png")); // 設置圖片
		jbtn[4].setToolTipText("乎,有個提示哎");// 放到圖片上纔有提示文字

		/**
		 * 彈窗
		 */
		jbtn[5].setText("選擇內容");
		jbtn[5].addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				int content = JOptionPane.showConfirmDialog(JButtonTest.this, "猜猜看,有什麼驚喜呢???");
				if (content > 0) {
					JOptionPane.showMessageDialog(JButtonTest.this, "請重新選擇是");
				} else {
					JOptionPane.showMessageDialog(JButtonTest.this, "中獎了,恭喜你");
				}
			}
		});

		jbtn[6].setText("好好學習,天天向上");
		// 設置字體
		jbtn[6].setFont(new Font("仿宋", Font.BOLD, 10));

		// 設置窗口爲顯示狀態
		this.setVisible(true);
	}

	public static void main(String args[]) {
		JFrame jframe = new JButtonTest();
	}
}
  • 代碼效果圖
    在這裏插入圖片描述

單選按鈕(JRadioButton

  • 代碼部分
package top.linksinke.test;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

/**
 * JRadioButton 單選按鈕的使用<br/>
 * create by LINKSINKE on 2020/2/29
 */
public class JRadioButtonTest extends JFrame {

	public JRadioButtonTest() {
		// 設置close按鈕的操作(退出窗口並停止程序運行)
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 設置窗口默認打開的位置和大小
		this.setBounds(30, 30, 300, 300);

		// 獲取容器對象
		Container ctainer = this.getContentPane();
		// 設置佈局方式爲網格佈局,2行1列,橫向間距10,縱向間距10
		ctainer.setLayout(new GridLayout(2, 1, 10, 10));

		// 設置默認按鈕0是勾選中的
		/**
		 * 通過setSelected(boolean 值,可選true|false)方法來設置默認值
		 */
		JPanel p1 = new JPanel();
		p1.setLayout(new FlowLayout());
		p1.setBorder(BorderFactory.createTitledBorder("默認勾選旋鈕0效果"));
		JRadioButton rdoOne[] = new JRadioButton[8];
		for (int i = 0; i < rdoOne.length; i++) {
			rdoOne[i] = new JRadioButton("旋鈕" + i);
			p1.add(rdoOne[i]);
		}
		rdoOne[0].setSelected(true); // 設置默認選擇旋鈕0

		// 設置按鈕存在排斥效果,即不能同時選中,只能夠選中一個
		/**
		 * 通過ButtonGroup來實現只能夠選中一個
		 */
		JPanel p2 = new JPanel();
		p2.setBorder(BorderFactory.createTitledBorder("排斥效果"));
		final JRadioButton rdoTwo[] = new JRadioButton[8];
		final ButtonGroup group = new ButtonGroup();
		for (int i = 0; i < rdoTwo.length; i++) {
			rdoTwo[i] = new JRadioButton("旋鈕" + i);
			group.add(rdoTwo[i]);
			p2.add(rdoTwo[i]);
		}
		/**
		 * 將面板名稱爲“排斥效果”的按鈕狀態以彈窗的形式告知
		 */
		JButton btn = new JButton("輸出");
		btn.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(JRadioButtonTest.this,
						"按鈕0狀態==" + rdoTwo[0].isSelected() + "按鈕1狀態=" + rdoTwo[1].isSelected() + "\n按鈕2狀態="
								+ rdoTwo[2].isSelected() + "按鈕3狀態=" + rdoTwo[3].isSelected() + "\n按鈕4狀態="
								+ rdoTwo[4].isSelected() + "按鈕5狀態=" + rdoTwo[5].isSelected() + "\n按鈕6狀態="
								+ rdoTwo[6].isSelected() + "按鈕7狀態=" + rdoTwo[7].isSelected());
				group.clearSelection();
				JOptionPane.showMessageDialog(JRadioButtonTest.this,
						"按鈕0狀態==" + rdoTwo[0].isSelected() + "按鈕1狀態=" + rdoTwo[1].isSelected() + "\n按鈕2狀態="
								+ rdoTwo[2].isSelected() + "按鈕3狀態=" + rdoTwo[3].isSelected() + "\n按鈕4狀態="
								+ rdoTwo[4].isSelected() + "按鈕5狀態=" + rdoTwo[5].isSelected() + "\n按鈕6狀態="
								+ rdoTwo[6].isSelected() + "按鈕7狀態=" + rdoTwo[7].isSelected());
			}
		});
		p2.add(btn);

		// 向容器中添加面板對象p1,p2
		ctainer.add(p1);
		ctainer.add(p2);

		// 設置窗口爲顯示狀態
		this.setVisible(true);

	}

	public static void main(String args[]) {
		JFrame jframe = new JRadioButtonTest();
	}

}
  • 代碼效果圖
    在這裏插入圖片描述

複選框按鈕(JCheckBox

  • 代碼部分
package top.linksinke.test;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/**
 * JCheckBox 複選框練習<br/>
 * create by LINKSINKE on 2020/2/29
 */
public class JCheckBoxTest extends JFrame {
	public JCheckBoxTest() {
		// 設置close按鈕的操作(關閉窗口並停止程序)
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 設置窗口默認打開的位置和大小
		this.setBounds(20, 20, 300, 200);

		// 獲取容器對象
		Container ctainer = this.getContentPane();
		// 設置佈局方式爲流式佈局
		ctainer.setLayout(new FlowLayout());

		// 創建c1對象
		final JCheckBox c1 = new JCheckBox("乒乓球");
		c1.setSelected(true);// 設置乒乓球爲默認選中
		ctainer.add(c1);

		// 添加匿名對象到容器中
		ctainer.add(new JCheckBox("足球"));
		ctainer.add(new JCheckBox("籃球"));
		ctainer.add(new JCheckBox("排球"));
		ctainer.add(new JCheckBox("高爾夫球"));
		ctainer.add(new JCheckBox("冰球"));
		ctainer.add(new JCheckBox("網球"));
		ctainer.add(new JCheckBox("橄欖球"));
		ctainer.add(new JCheckBox("羽毛球"));
		ctainer.add(new JCheckBox("保齡球"));

		/**
		 * 獲取c1的選中狀態<br/>
		 * true:選中狀態,false:未選中狀態
		 */
		JButton btn = new JButton("獲取c1狀態");
		btn.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(JCheckBoxTest.this, "c1的狀態爲:" + c1.isSelected());
			}
		});

		// 添加btn到容器中
		ctainer.add(btn);

		// 設置窗口爲顯示狀態
		this.setVisible(true);
	}

	public static void main(String args[]) {
		JFrame jframe = new JCheckBoxTest();
	}
}
  • 代碼效果圖
    在這裏插入圖片描述

切換按鈕(JToggleButton

  • 代碼部分
package top.linksinke.test;

import java.awt.Container;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JToggleButton;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

/**
 * JToggleButton 切換按鈕的使用<br/>
 * create by LINKSINKE on 2020/3/2
 */
public class JToggleButtonTest extends JFrame {
	public JToggleButtonTest() {
		// 設置close按鈕的操作(關閉窗口並停止程序的運行)
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 設置窗口默認打開的位置和大小
		this.setBounds(20, 20, 200, 200);
		// 獲取容器對象
		Container ctainer = this.getContentPane();
		ctainer.setLayout(null);// 設置佈局方式爲絕對佈局

		// 帶圖片的標籤
		final JLabel lb = new JLabel(new ImageIcon("src/java.jpg"));
		lb.setBounds(40, 10, 100, 100);// 設置位置和大小
		lb.setVisible(false);// 默認爲不顯示該標籤

		// 切換按鈕
		final JToggleButton tgbtn = new JToggleButton("查看圖片");
		tgbtn.setBounds(40, 120, 90, 20);// 設置位置和大小
		/**
		 * 添加按鈕狀態改變的監聽事件
		 */
		tgbtn.addChangeListener(new ChangeListener() {
			@Override
			public void stateChanged(ChangeEvent e) {
				JToggleButton j = (JToggleButton) e.getSource();
				if (j.isSelected()) {
					tgbtn.setText("隱藏圖片");
					lb.setVisible(true);
				} else {
					tgbtn.setText("查看圖片");
					lb.setVisible(false);
				}
			}
		});

		// 往容器裏放入切換按鈕、帶圖片的標籤
		ctainer.add(tgbtn);
		ctainer.add(lb);
		// 設置窗口爲顯示狀態(true爲顯示,false爲不顯示)
		this.setVisible(true);

	}

	public static void main(String args[]) {
		JFrame jframe = new JToggleButtonTest();
	}
}
  • 代碼效果圖
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章