程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Swing經常使用組件之單選按鈕和復選框

Swing經常使用組件之單選按鈕和復選框

編輯:關於JAVA

Swing經常使用組件之單選按鈕和復選框。本站提示廣大學習愛好者:(Swing經常使用組件之單選按鈕和復選框)文章只能為提供參考,不一定能成為您想要的結果。以下是Swing經常使用組件之單選按鈕和復選框正文


本文為年夜家分享了Swing單選按鈕和復選框的應用辦法,供年夜家參考,詳細內容以下

JRadioButton結構函數:

JRadioButton():樹立一個新的JRadioButton.
JRadioButton(Icon icon):樹立一個有圖象但沒有文字的JRadioButton.
JRadioButton(Icon icon,boolean selected):樹立一個有圖象但沒有文字的JRadioButton,且設置其初始狀況(有沒有被拔取).
JRadioButton(String text):樹立一個有文字的JRadioButton.
JRadioButton(String text,boolean selected):樹立一個有文字的JRadioButton,且設置其初始狀況(有沒有被拔取)。
JRadioButton(String text,Icon icon):樹立一個有文字且有圖象的JRadioButton,初始狀況為無被拔取。
JRadioButton(String text,Icon icon,boolean selected):樹立一個有文字且有圖象的JRadioButton,且設置其初始狀況(有沒有被拔取)
要將RadioButton改成單選,我們必需用到ButtonGroup這個類。這個類位於javax.swing這個package上面,ButtonGroup類的主 要功效是:統一時光內只會有一個組件的狀況為"on",其他皆為"off",也就是統一時光只要一個組件會被拔取。而ButtonGroup類可 被AbstractButton上面的子類所應用,最常被應用的就是JRadioButton、JradioButtonMenu、Item與JToggleButton這些組件

ButtonGroup類的結構辦法以下:

ButtonGroup()創立一個新的ButtonGroup()

ButtonGroup()類的經常使用的辦法以下:
public void add(AbstractButton b):添加按鈕到組中
public void clearSelection():消除選中內容,即沒有選中按鈕組中的任何按鈕
pubic int getButtonCount():獲得此組中的按鈕數
public Enumeration<AbstractButton>getElemeent():獲得此組中的所用按鈕
public void remove (AbstractButton b):從按鈕中刪除按鈕

JCheckBox結構函數

JCheckBox():樹立一個新的JChcekBox.
JCheckBox(Icon icon):樹立一個有圖象但沒有文字的JCheckBox.
JCheckBox(Icon icon,boolean selected):樹立一個有圖象但沒有文字的JCheckBox,且設置其初始狀況(有沒有被拔取)。
JCheckBox(String text):樹立一個有文字的JCheckBox.
JCheckBox(String text,boolean selected):樹立一個有文字的JCheckBox,且設置其初始狀況(有沒有被拔取)。
JCheckBox(String text,Icon icon):樹立一個有文字且有圖象的JCheckBox,初始狀況為無被拔取。
JCheckBox(String text,Icon icon,boolean selected):樹立一個有文字且有圖象的JCheckBox,且設置其初始狀況(有沒有被拔取 )。
當JCheckBox中的選項被拔取 或撤消時,它會觸發ItemEvent的事宜,ItemEvent這個類共供給了4種辦法可使用,分離是getItem()、getItemSelectable()、 getStateChange()、paramString()。getItem()與paramString()辦法會前往一些這個JCheckBox的狀況值。普通我們較罕用到這兩 個辦法。

getItemSelectable()相當於getSource()辦法,一樣都是前往觸發事宜的組件,用來斷定是誰人組件發生事宜。getSource()辦法是EventObject類所供給,而一切事宜類都邑繼續這個類,是以一切的事宜我們均能用getSource() 辦法來斷定究竟是哪一個組件觸發了事宜。

最初getStateChange()辦法會前往此組件究竟有無被拔取。這個辦法會前往一個整數值。而我們可以用ItemEvent所供給的類 變量;若被拔取則前往SELECTED,若沒有被拔取則前往DESELECTED.
單選按鈕和復選框注冊和刊出ItemEvent事宜監聽器的辦法以下:
public void addItemListener(ItemListener l): 注冊指定的ItemListener事宜監聽器
public void removeItemListener(ItemListener l): 刊出指定的ItemListener事宜監聽器

package ch10; 
 
import java.awt.event.*; 
 
import javax.swing.*; 
 
public class Vote extends JFrame implements ActionListener 
{ 
   private JPanel jp = new JPanel(); 
   JRadioButton jrb1 = new JRadioButton("這個網站很好,很新鮮!",true); 
   JRadioButton jrb2 = new JRadioButton("這個網站很通俗,太普通"); 
   JRadioButton jrb3 = new JRadioButton("這個網站很差,偶然看一下"); 
   JRadioButton jrb4 = new JRadioButton("這個網站太差了,不來了"); 
   private JRadioButton[] jrb = new JRadioButton[]{jrb1,jrb2,jrb3,jrb4}; 
   private ButtonGroup bg = new ButtonGroup(); 
   JCheckBox jcb1 = new JCheckBox("界面比擬英俊"); 
   JCheckBox jcb2 = new JCheckBox("內容比擬豐碩"); 
   JCheckBox jcb3 = new JCheckBox("增值辦事比擬好"); 
   JCheckBox jcb4 = new JCheckBox("會員辦事比擬好"); 
   private JCheckBox[] jcb =new JCheckBox[]{jcb1,jcb2,jcb3,jcb4}; 
   private JButton [] jb = {new JButton("我要投票"),new JButton("我要重選")}; 
   private JLabel[] jl = {new JLabel("這個網站給你的印象是:"),new JLabel("您以為本站哪裡做的比擬好"),new JLabel("您投票的內容是:")}; 
   private JTextArea jt = new JTextArea(); 
   private JScrollPane js= new JScrollPane(jt); 
   public Vote() 
   { 
     jp.setLayout(null); 
     for(int i=0;i<4;i++) 
     { 
       jrb[i].setBounds(30+170*i,40,170,30); 
       jcb[i].setBounds(30+120*i,100,120,30); 
       jp.add(jrb[i]); 
       jp.add(jcb[i]); 
       jcb[i].addActionListener(this); 
       jrb[i].addActionListener(this); 
       bg.add(jrb[i]); 
       if(i>1) 
         continue; 
       jl[i].setBounds(20,20+50*i,200,30); 
       jb[i].setBounds(380+120*i,200,100,20); 
       jp.add(jl[i]); 
       jp.add(jb[i]); 
       jb[i].addActionListener(this); 
     } 
     jl[2].setBounds(20,150,120,30); 
     jp.add(jl[2]); 
     js.setBounds(120,150,500,50); 
     jp.add(js); 
     jt.setLineWrap(true); 
     jt.setEditable(false); 
     this.add(jp); 
     this.setTitle("網站滿足查詢拜訪表"); 
     this.setBounds(150,150,750,300); 
     this.setVisible(true); 
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
   } 
   public void actionPerformed(ActionEvent a) 
   { 
     if(a.getSource()==jb[1]) 
     { 
       bg.clearSelection(); 
       for(int i=0;i<jcb.length;i++) 
         jcb[i].setSelected(false); 
       jt.setText(""); 
     } 
     else 
     { 
       StringBuffer temp1 = new StringBuffer("你以為這個網站"); 
       StringBuffer temp2 = new StringBuffer(""); 
       for(int i=0;i<4;i++) 
       { 
         if(jrb[i].isSelected()) 
           temp1.append(jrb[i].getText()); 
         if(jcb[i].isSelected()) 
           temp2.append(jcb[i].getText()+","); 
       } 
       if(temp2.length()==0) 
         jt.setText("請將兩項查詢拜訪都選擇"); 
       else 
       { 
         temp1.append("你以為這個網站"); 
         temp1.append(temp2.substring(0,temp2.length()-1)); 
         jt.setText(temp1.toString()); 
       } 
     } 
   } 
   public static void main(String args[]) 
   { 
     new Vote(); 
   } 
}

後果圖:


以上就是本文的全體內容,願望對年夜家的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved