国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 14:22:22
字體:
來源:轉載
供稿:網友

本文為大家分享了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();    } }

效果圖:


以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 时尚| 苗栗市| 合川市| 息烽县| 韶山市| 阿勒泰市| 鸡东县| 安阳县| 东乌珠穆沁旗| 舒兰市| 固阳县| 辛集市| 浪卡子县| 神木县| 拉萨市| 龙川县| 公主岭市| 温宿县| 丹阳市| 晋宁县| 宝应县| 团风县| 新营市| 太谷县| 桂平市| 宁南县| 景德镇市| 黄梅县| 郎溪县| 应城市| 衡阳市| 信丰县| 商河县| 本溪市| 彝良县| 虎林市| 崇仁县| 灵武市| 泰来县| 扶绥县| 兰州市|