普通按鈕(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();
}
}
- 代碼效果圖