Java詳解Swing中的幾種常用按鈕的使用
Swing中的常用按鈕
在Swing中,常見的按鈕組件有JButton,JCheckBox,JRadioButton等,它們都是抽象類AbstractButton類的直接或間接子類。在AbstractButton類中提供了按鈕組件通用的一些方法。
AbstractButton的常用方法
方法描述 | 功能 |
---|---|
lcon getlcon()和void setlcon(lcon icon) | 設置或者獲取按鈕的圖標 |
String getText()和void setText(String text) | 設置或者獲取按鈕的文本 |
void setEnable(boolean b) | 啟用或者禁用按鈕 |
setSelected(boolean b) | 設置按鈕的狀態(tài)為是否選中 |
boolean isSelected() | 返回按鈕的狀態(tài) |
JRadionButton(單選按鈕)
單選按鈕只能選中一個,當按下一個按鈕的時候,先前按下的按鈕就會彈起,對于單選按鈕來說,當一個按鈕被選中時,先前選中的按鈕就會自動取消選中。
但是單選按鈕本身不具備這種功能,要想實現(xiàn)單選按鈕之間的互斥,需要用java.swing.ButtonGroup類,它是一個不可見的組件,不需要添加在容器中顯示,只在邏輯上表示一個單選按鈕,將多個單選按鈕添加到同一個單選按鈕組對象中,就能實現(xiàn)按鈕的單選功能。
單選按鈕的構造方法
方法描述 | 功能說明 |
---|---|
JRadioButton() | 創(chuàng)建一個沒有文本信息,始終狀態(tài)未被選中的單選框 |
JRadioButton(String ,text) | 創(chuàng)建一個帶有文本信息,初始狀態(tài)未被選定的單選框 |
JRadioButton(String text,boolean selected) | 創(chuàng)建一個具有文本信息,并指定初始狀態(tài)(選中/未選中)的單選框 |
package Swing; ? import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; ? public class DanXuan extends JFrame { //單選按鈕對象 private ButtonGroup group; //將按鈕放在JPanel面板上 private JPanel panel; //將JPanel作為調色板 private JPanel pallet; public DanXuan(){ pallet =new JPanel(); this.add(pallet,BorderLayout.CENTER); panel=new JPanel(); group=new ButtonGroup(); addJRadioButton("灰"); addJRadioButton("粉"); addJRadioButton("黃"); this.add(panel,BorderLayout.SOUTH); this.setSize(300,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } //創(chuàng)建一個帶有文本信息的單選按鈕,將按鈕添加到panel面板和ButtonGroup按鈕組中,并添加一個監(jiān)聽器 private void addJRadioButton(final String text){ JRadioButton radioButton=new JRadioButton(text); group.add(radioButton); panel.add(radioButton); radioButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Color color=null; if("灰".equals(text)){ color=Color.GRAY; }else if("粉".equals(text)){ color=Color.PINK; }else if("黃".equals(text)){ color=Color.YELLOW; }else { color=Color.WHITE; } pallet.setBackground(color); } }); } public static void main(String[] args) { new DanXUan(); } }
在一個面板上放置三個按鈕,當單擊這三個不同的按鈕時,pallet面板的背景就會相應的變成灰色,粉色,黃色。先為按鈕設置一個事件監(jiān)聽器,用來響應用戶單擊單選按鈕的操作,在actionPerformed()方法中定義一個Color類型的變量color,并根據方法傳入的text值進行判斷,根據color的值設置pallet的背景顏
復選框(JCheckBox)
有選中和未選中兩種狀態(tài),如果用戶想要接收的輸入只有是和非,則可以通過復選框來切換狀態(tài),如果復選框有多個,則用戶可以選擇其中一個或則多個。
復選框的構造方法
方法描述 | 功能敘述 |
---|---|
JCheckBox() | 創(chuàng)建一個沒有文本信息,初始狀態(tài)未被選中的復選框 |
JCheckBox(String text) | 創(chuàng)建一個帶有文本信息,初始狀態(tài)未被選中的復選框 |
JCheckBox(String text,boolean selected) | 創(chuàng)建一個帶有文本信息,并指定初始狀態(tài)的復選框 |
package Swing; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class DuoXuan extends JFrame { private JCheckBox italic; private JCheckBox bold; private JLabel label; public DuoXuan (){ label=new JLabel("我的世界",JLabel.CENTER); label.setFont(new Font("宋體",Font.PLAIN,20)); Component lable ; Label p1 = new Label(); this.add(p1); JPanel panel=new JPanel(); italic=new JCheckBox("ITALIC"); bold=new JCheckBox("BOLD"); ActionListener listener=new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int mode = 0; if(bold.isSelected()) mode+=Font.BOLD; if(italic.isSelected()) mode+=Font.ITALIC; label.setFont(new Font("宋體",mode,20)); } }; italic.addActionListener(listener); bold.addActionListener(listener); panel.add(italic); panel.add(bold); this.add(panel,BorderLayout.SOUTH); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300,300); this.setVisible(true); } public static void main(String[] args) { new DuoXuan (); } }
組合框(JComboBox)
JComboBox組件被稱為組合框或者下拉列表框,它將所有選擇折疊收藏在一起,默認顯示的是第一個添加的選項,當用戶單擊組合框時,會出現(xiàn)下拉式的選擇列表,用戶可以從中選擇其中一項并顯示。分為可編輯和不可編輯兩種形式,對于不可編輯的組合框,用戶只能在現(xiàn)有的選項列表中進行選擇,對于可編輯的組合框,用戶既可以在現(xiàn)有的選項中進行選擇,還可以自己輸入新的內容,自己輸入的內容只能作為當前項顯示,并不會添加到組合框的選項列表中。
組合框的構造方法
方法描述 | 功能敘述 |
---|---|
JComBox() | 創(chuàng)建一個沒有可選項的組合框 |
JComboBox(Object[]items) | 創(chuàng)建一個組合框,將Object數(shù)組中的元素作為組合框的下拉列表選項 |
JComboBox(Vector items) | 創(chuàng)建一個組合框,將Vector集合中的元素作為組合框的下拉列表選項 |
下拉列表框的常用方法
void addItem(Object anObject) //將指定的對象作為選項添加到下拉列表框中
void insertItemAt(Object anObject,int index) //在下拉列表框中的指定索引處插入項
void removeltem(0bject anObject) //在下拉列表框中刪除指定的對象項
void removeItemAt(int anlndex) //在下拉列表框中刪除指定位置的對象項
void removeAllItems() //從下拉列表框中刪除所有項
int getItemCount() //返回下拉列表框中的項數(shù)
Object getItemAt(int index) //獲取指定索引的列表項,索引從 0 開始
int getSelectedIndex() //獲取當前選擇的索引
Object getSelectedltem() //獲取當前選擇的項
package Swing; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class XiaLa extends JFrame { //創(chuàng)建一個組合框 private JComboBox comboBox; //創(chuàng)建一個文本框 private JTextField field; public XiaLa(){ //創(chuàng)建一個面板 JPanel panel=new JPanel(); comboBox=new JComboBox(); //為組合框添加選項 comboBox.addItem("請選擇城市"); comboBox.addItem("駐馬店"); comboBox.addItem("鄭州"); comboBox.addItem("開封"); comboBox.addItem("漯河"); comboBox.addItem("南陽"); comboBox.addItem("洛陽"); comboBox.addItem("濟源"); comboBox.addItem("商丘"); comboBox.addItem("新鄉(xiāng)"); comboBox.addItem("周口"); comboBox.addItem("信陽"); comboBox.addItem("三門峽"); comboBox.addItem("濮陽"); comboBox.addItem("許昌"); comboBox.addItem("安陽"); comboBox.addItem("鶴壁"); comboBox.addItem("焦作"); comboBox.addItem("平頂山"); //為組合框設置事件監(jiān)聽器 comboBox.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String item =(String) comboBox.getSelectedItem(); if("請選擇城市".equals(item)){ field.setText(""); ? }else{ field.setText("你選擇的城市是:"+item); } } }); field=new JTextField(20); panel.add(comboBox); panel.add(field); //在內容面板中添加JPanel面板 this.add(panel, BorderLayout.NORTH); this.setSize(350,100); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new XiaLa(); } }
首先為組合框添加一個事件監(jiān)聽器,然后再actionPerformed()方法中,通過調用comboBox的getSelectedItem()方法獲得用戶所選的item,如果為城市名調用filed的setText(item)方法將城市名顯示在文本框中;如果item為"請選擇城市"則將文本框的內容清空。
小結
以上就是我對于Swing中幾種常見按鈕的理解,以便于我們之后在不同開發(fā)中根據不同的情況設置不同的按鈕,提高用戶的體驗感。
到此這篇關于Java詳解Swing中的幾種常用按鈕的使用的文章就介紹到這了,更多相關Java Swing按鈕內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)詳細教程
使用SSM(Spring、SpringMVC和Mybatis)已經有段時間了,項目在技術上已經沒有什么難點了,基于現(xiàn)有的技術就可以實現(xiàn)想要的功能,下面這篇文章主要給大家介紹了關于整合SSM框架:Spring MVC + Spring + MyBatis的相關資料,需要的朋友可以參考下。2017-07-07解決SpringCloud Feign傳對象參數(shù)調用失敗的問題
這篇文章主要介紹了解決SpringCloud Feign傳對象參數(shù)調用失敗的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Java中CountDownLatch進行多線程同步詳解及實例代碼
這篇文章主要介紹了Java中CountDownLatch進行多線程同步詳解及實例代碼的相關資料,需要的朋友可以參考下2017-03-03利用線程實現(xiàn)動態(tài)顯示系統(tǒng)時間
編寫Applet小程序,通過在HTML文檔中接收參數(shù),顯示當前的系統(tǒng)時間,需要的朋友可以參考下2015-10-10