精华内容
下载资源
问答
  • package gf; import java.awt.*; import java.swing.*; import java.swing.border.Border; Class Window{ ...单选框"); JRadioButton jr1=new JRadioButton("红色
    package gf;
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.Border;
    
    class Window{
        void go(){
        JFrame jf=new JFrame("单选框");
            JRadioButton jr1=new JRadioButton("红色");
            JRadioButton jr2=new JRadioButton("蓝色");
            JRadioButton jr3=new JRadioButton("绿色");//设置单选按钮
            JPanel jp=new JPanel();//面板容器
    
            jr1.setBackground(Color.red);
            jr2.setBackground(Color.blue);
            jr3.setBackground(Color.green);//设置背景颜色
    
            jp.add(jr1);
            jp.add(jr2);
            jp.add(jr3);//加入按钮
            jf.add(jp);
    
            jf.setBounds(500,400,500,200);
            jf.setVisible(true);//使JFrame能显示出来
            }
            }
    
            public class sir{
            public static void main(String[] args){
            new Window().go();
            }
            }

    /*重点内容
    1.这个单选框例子只是众多框架中的一个,还有文本框、复选框、下拉组合框、列表框、弹出式菜单……
    2.这个例子去掉颜色就最原始了,所有复杂的东西都是由多个简单的拼凑磨合而成的,所以只要掌握核心,就能得心应手。

    展开全文
  • 49 java编程思想 创建窗口和程序片 文本 复选框 单选框 下拉列表

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

    49.java编程思想——创建窗口和程序片 文本 复选框 单选框 下拉列表

    “文本字段”是允许用户输入和编辑文字的一种线性区域。文本字段从文本组件那里继承了让我们选择文字、让我们像得到字符串一样得到选择的文字,得到或设置文字,设置文本字段是否可编辑以及连同我们从在线参考书中找到的相关方法。

    1     代码1

    import java.awt.*;

    import java.applet.*;

    publicclass TextField1 extends Applet {

        Button b1 =new Button("Get Text"),b2 = new Button("Set Text");

        TextField t =new TextField("Starting text", 30);

        String s =new String();

        publicvoidinit() {

            add(b1);

            add(b2);

            add(t);

        }

        publicbooleanaction(Event evt,Object arg){

            if (evt.target.equals(b1)) {

                getAppletContext().showStatus(t.getText());

                s =t.getSelectedText();

                if (s.length() == 0)

                    s =t.getText();

                t.setEditable(true);

            } elseif (evt.target.equals(b2)) {

                t.setText("Inserted by Button 2: "+s);

                t.setEditable(false);

            }

            // Let the base class handle it:

            else

                returnsuper.action(evt,arg);

            returntrue; // We'vehandled it here

        }

    } /// :~

    有几种方法均可构建一个文本字段;其中之一是提供一个初始字符串,并设置字符域的大小。

    按下按钮1 是得到我们用鼠标选择的文字就是得到字段内所有的文字并转换成字符串S。它也允许字段被编辑。按下按钮2 放一条信息和字符串s 到Text fields,并且阻止字段被编辑(尽管我们能够一直选择文字)。文字的可编辑性是通过setEditable() 的真假值来控制的。

    2     文本区域

    “文本区域”很像文字字段,只是它拥有更多的行以及一些引人注目的更多的功能。另外你能在给定位置对一个文本字段追加、插入或者修改文字。这看起来对文本字段有用的功能相当不错,所以设法发现它设计的特性会产生一些困惑。我们可以认为如果我们处处需要“文本区域”的功能,那么可以简单地使用一个线型文字区域在我们将另外使用文本字段的地方。在Java 1.0 版中,当它们不是固定的时候我们也得到了一个文本区域的垂直和水平方向的滚动条。在Java 1.1 版中,对高级构建器的修改允许我们选择哪个滚动条是当前的。下面的例子演示的仅仅是在Java1.0 版的状况下滚动条一直打开。在下一章里我们将看到一个证明Java1.1 版中的文字区域的例程。

    3     代码2

    import java.awt.*;

    import java.applet.*;

    publicclass TextArea1 extends Applet {

        Button b1 =new Button("Text Area 1");

        Button b2 =new Button("Text Area 2");

        Button b3 =new Button("Replace Text");

        Button b4 =new Button("Insert Text");

        TextArea t1 =new TextArea("t1", 1, 30);

        TextArea t2 =new TextArea("t2", 4, 30);

     

        publicvoidinit() {

            add(b1);

            add(t1);

            add(b2);

            add(t2);

            add(b3);

            add(b4);

        }

     

        publicbooleanaction(Event evt,Object arg){

            if (evt.target.equals(b1))

                getAppletContext().showStatus(t1.getText());

            elseif (evt.target.equals(b2)) {

                t2.setText("Inserted by Button 2");

                t2.appendText(": "+t1.getText());

                getAppletContext().showStatus(t2.getText());

            } elseif (evt.target.equals(b3)) {

                String s ="Replacement ";

                t2.replaceText(s, 3, 3 +s.length());

            } elseif (evt.target.equals(b4))

                t2.insertText(" Inserted ",10);

            // Let the base class handle it:

            else

                returnsuper.action(evt,arg);

            returntrue; // We'vehandled it here

        }

    } /// :~

    程序中有几个不同的“文本区域”构建器,这其中的一个在此处显示了一个初始字符串和行号和列号。不同的按钮显示得到、追加、修改和插入文字。

    4     标签

    标签准确地运作:安放一个标签到窗体上。这对没有标签的TextFields 和Text areas 来说非常的重要,如果我们简单地想安放文字的信息在窗体上也能同样的使用。我们能像本章中第一个例程中演示的那样,使用drawString()里边的paint()在确定的位置去安置一个文字。当我们使用的标签允许我们通过布局管理加入其它的文字组件。

    使用构建器我们能创建一条包括初始化文字的标签(这是我们典型的作法),一个标签包括一行CENTER(中间)、LEFT(左)和RIGHT(右)(静态的结果取整定义在类标签里)。如果我们忘记了可以用getText()和getalignment()读取值,我们同样可以用setText()和setAlignment()来改变和调整。

    4.1     代码3

    import java.awt.*;

    import java.applet.*;

    publicclass Label1 extends Applet {

        TextField t1 =new TextField("t1", 10);

        Label labl1 =new Label("TextField t1");

        Label labl2 =new Label(" ");

        Label labl3 =new Label(" ", Label.RIGHT);

        Button b1 =new Button("Test 1");

        Button b2 =new Button("Test 2");

        publicvoidinit() {

            add(labl1);

            add(t1);

            add(b1);

            add(labl2);

            add(b2);

            add(labl3);

        }

     

        publicbooleanaction(Event evt,Object arg){

            if (evt.target.equals(b1))

                labl2.setText("Text set into Label");

            elseif (evt.target.equals(b2)) {

                if (labl3.getText().trim().length() == 0)

                    labl3.setText("labl3");

                if (labl3.getAlignment() == Label.LEFT)

                    labl3.setAlignment(Label.CENTER);

                elseif (labl3.getAlignment() == Label.CENTER)

                    labl3.setAlignment(Label.RIGHT);

                elseif (labl3.getAlignment() == Label.RIGHT)

                    labl3.setAlignment(Label.LEFT);

            } else

                returnsuper.action(evt,arg);

            returntrue;

        }

    } /// :~

    首先是标签的最典型的用途:标记一个文本字段或文本区域。在例程的第二部分,当我们按下“test 1”按钮通过setText()将一串空的空格插入到的字段里。因为空的空格数不等于同样的字符数(在一个等比例间隔的字库里),当插入文字到标签里时我们会看到文字将被省略掉。在例子的第三部分保留的空的空格在我们第一次按下“test 2”会发现标签是空的(trim()删除了每个字符串结尾部分的空格)并且在开头的左列插入了一个短的标签。在工作的其余时间中我们按下按钮进行调整,因此就能看到效果。

    我们可能会认为我们可以创建一个空的标签,然后用setText()安放文字在里面。然而我们不能在一个空标签内加入文字-这大概是因为空标签没有宽度-所以创建一个没有文字的空标签是没有用处的。在上面的例子里,“blank”标签里充满空的空格,所以它足够容纳后面加入的文字。

    同样的,setAlignment()在我们用构建器创建的典型的文字标签上没有作用。这个标签的宽度就是文字的宽度,所以不能对它进行任何的调整。但是,如果我们启动一个长标签,然后把它变成短的,我们就可以看到调整的效果。

    这些导致事件连同它们最小化的尺寸被挤压的状况被程序片使用的默认布局管理器所发现。

    5     复选框

    复选框提供一个制造单一选择开关的方法;它包括一个小框和一个标签。典型的复选框有一个小的“X”(或者它设置的其它类型)或是空的,这依靠项目是否被选择来决定的。

    我们会使用构建器正常地创建一个复选框,使用它的标签来充当它的自变量。如果我们在创建复选框后想读出或改变它,我们能够获取和设置它的状态,同样也能获取和设置它的标签。注意,复选框的大写是与其它的控制相矛盾的。

    无论何时一个复选框都可以设置和清除一个事件指令,我们可以捕捉同样的方法做一个按钮。在下面的例子里使用一个文字区域枚举所有被选中的复选框:

    5.1     代码4

    import java.awt.*;

    import java.applet.*;

    publicclass CheckBox1 extends Applet {

        TextArea t =new TextArea(6, 20);

        Checkbox cb1 =new Checkbox("Check Box 1");

        Checkbox cb2 =new Checkbox("Check Box 2");

        Checkbox cb3 =new Checkbox("Check Box 3");

        publicvoidinit() {

            add(t);

            add(cb1);

            add(cb2);

            add(cb3);

        }

        publicbooleanaction(Event evt,Object arg){

            if (evt.target.equals(cb1))

                trace("1",cb1.getState());

            elseif (evt.target.equals(cb2))

                trace("2",cb2.getState());

            elseif (evt.target.equals(cb3))

                trace("3",cb3.getState());

            else

                returnsuper.action(evt,arg);

            returntrue;

        }

        void trace(Stringb,booleanstate){

            if (state)

                t.appendText("Box "+b+ " Set\n");

            else

                t.appendText("Box "+b+ " Cleared\n");

        }

    } /// :~

    trace()方法将选中的复选框名和当前状态用appendText()发送到文字区域中去,所以我们看到一个累积的被选中的复选框和它们的状态的列表。

    6     单选钮

    单选钮在GUI 程序设计中的概念来自于老式的电子管汽车收音机的机械按钮:当我们按下一个按钮时,其它的按钮就会弹起。因此它允许我们强制从众多选择中作出单一选择。

    AWT 没有单独的描述单选钮的类;取而代之的是复用复选框。然而将复选框放在单选钮组中(并且修改它的外形使它看起来不同于一般的复选框)我们必须使用一个特殊的构建器象一个自变量一样的作用在checkboxGroup 对象上。(我们同样能在创建复选框后调用setCheckboxGroup()方法。)

    一个复选框组没有构建器的自变量;它存在的唯一理由就是聚集一些复选框到单选钮组里。一个复选框对象必须在我们试图显示单选钮组之前将它的状态设置成true,否则在运行时我们就会得到一个异常。如果我们设置超过一个的单选钮为true,只有最后的一个能被设置成真。

    6.1     代码5

    import java.awt.*;

    import java.applet.*;

    publicclass RadioButton1 extends Applet {

        TextField t =new TextField("Radio button 2", 30);

        CheckboxGroup g =new CheckboxGroup();

        Checkbox cb1 =new Checkbox("one",g, false),cb2 = new Checkbox("two",g, true),

                cb3 =new Checkbox("three",g, false);

     

        publicvoidinit() {

            t.setEditable(false);

            add(t);

            add(cb1);

            add(cb2);

            add(cb3);

        }

     

        publicbooleanaction(Event evt,Object arg){

            if (evt.target.equals(cb1))

                t.setText("Radio button 1");

            elseif (evt.target.equals(cb2))

                t.setText("Radio button 2");

            elseif (evt.target.equals(cb3))

                t.setText("Radio button 3");

            else

                returnsuper.action(evt,arg);

            returntrue;

        }

    } /// :~

    显示的状态是一个文字字段在被使用。这个字段被设置为不可编辑的,因为它只是用来显示数据而不是收集。这演示了一个使用标签的可取之道。注意字段内的文字是由最早选择的单选钮“Radio button 2”初始化的。

    我们可以在窗体中拥有相当多的复选框组。

    7     下拉列表

    下拉列表像一个单选钮组,它是强制用户从一组可实现的选择中选择一个对象的方法。而且,它是一个实现这点的相当简洁的方法,也最易改变选择而不至使用户感到吃力(我们可以动态地改变单选钮,但那种方法显然不方便)。Java 的选择框不像Windows 中的组合框可以让我从列表中选择或输入自己的选择。在一个选择框中你只能从列表中选择仅仅一个项目。在下面的例子里,选择框从一个确定输入的数字开始,然后当按下一个按钮时,新输入的数字增加到框里。

    8     代码6

    import java.awt.*;

    import java.applet.*;

    publicclass Choice1 extends Applet {

        String[] description = {"Ebullient", "Obtuse","Recalcitrant","Brilliant", "Somnescent","Timorous", "Florid",

                "Putrescent" };

        TextField t =new TextField(30);

        Choice c =new Choice();

        Button b =new Button("Add items");

        intcount= 0;

        publicvoidinit() {

            t.setEditable(false);

            for (inti = 0; i < 4;i++)

                c.addItem(description[count++]);

            add(t);

            add(c);

            add(b);

        }

        publicbooleanaction(Event evt,Object arg){

            if (evt.target.equals(c))

                t.setText("index: " +c.getSelectedIndex() + " " + (String) arg);

            elseif (evt.target.equals(b)) {

                if (count <description.length)

                    c.addItem(description[count++]);

            } else

                returnsuper.action(evt,arg);

            returntrue;

        }

    } /// :~

    文本字字段中显示的“selected index,"也就是当前选择的项目的序列号,在事件中选择的字符串就像action()的第二个自变量的字串符描述的一样好。

    运行这个程序片时,请注意对Choice 框大小的判断:在windows 里,这个大小是在我们拉下列表时确定的。

    这意味着如果我们拉下列表,然后增加更多的项目到列表中,这项目将在那,但这个下拉列表不再接受。然而,如果我们在第一次拉下下拉列表前将所的项目装入下拉列表,它的大小就会合适。当然,用户在使用时希望看到整个的列表,所以会在下拉列表的状态里对增加项目到选择框里加以特殊的限定。

    9     列表框

    列表框与选择框有完全的不同,而不仅仅是当我们在激活选择框时的显示不同,列表框固定在屏幕的指定位置不会改变。另外,一个列表框允许多个选择:如果我们单击在超过一个的项目上,未选择的则表现为高亮度,我们可以选择象我们想要的一样的多。如果我们想察看项目列表,我们可以调用getSelectedItem()来产生一个被选择的项目列表。要想从一个组里删除一个项目,我们必须再一次的单击它。列表框,当然这里有一个问题就是它默认的动作是双击而不是单击。单击从组中增加或删除项目,双击调用action()。解决这个问题的方法是象下面的程序假设的一样重新培训我们的用户。

    9.1     代码7

    import java.awt.*;

    import java.applet.*;

    publicclass List1 extends Applet {

        String[] flavors = {"Chocolate", "Strawberry","Vanilla Fudge Swirl","Mint Chip", "Mocha Almond Fudge",

                "Rum Raisin","Praline Cream","Mud Pie" };

        // Show 6items, allow multiple selection:

        List lst =new List(6, true);

        TextArea t =new TextArea(flavors.length, 30);

        Button b =new Button("test");

        intcount= 0;

        publicvoidinit() {

            t.setEditable(false);

            for (inti = 0; i < 4;i++)

                lst.addItem(flavors[count++]);

            add(t);

            add(lst);

            add(b);

        }

        publicbooleanaction(Event evt,Object arg){

            if (evt.target.equals(lst)) {

                t.setText("");

                String[] items = lst.getSelectedItems();

                for (inti = 0; i < items.length; i++)

                    t.appendText(items[i] +"\n");

            } elseif (evt.target.equals(b)) {

                if (count <flavors.length)

                    lst.addItem(flavors[count++], 0);

            } else

                returnsuper.action(evt,arg);

            returntrue;

        }

    } /// :~

    按下按钮时,按钮增加项目到列表的顶部(因为addItem()的第二个自变量为零)。增加项目到列表框比到选择框更加的合理,因为用户期望去滚动一个列表框(因为这个原因,它有内建的滚动条)但用户并不愿意像在前面的例子里不得不去计算怎样才能滚动到要要的那个项目。

    然而,调用action()的唯一方法就是通过双击。如果我们想监视用户在我们的列表中的所作所为(尤其是单击),我们必须提供一个可供选择的方法。

    9.2     h a n d l e E v e n t ( )

    已使用了action(),现有另一种方法handleEvent()可对每一事件进行尝试。当一个事件

    发生时,它总是针对单独事件或发生在单独的事件对象上。该对象的handleEvent()方法是自动调用的,并且是被handleEvent() 创建并传递到handleEvent()里。默认的handleEvent()(handleEvent()定义在组件里,基础类的所有控件都在AWT 里)将像我们以前一样调用action()或其它同样的方法去指明鼠标的活动、键盘活动或者指明移动的焦点。我们将会在本章的后面部分看到。如果其它的方法-特别是action()-不能满足我们的需要怎么办呢?至于列表框,例如,如果我想捕捉鼠标单击,但action()只响应双击怎么办呢?这个解答是过载handleEvent(),毕竟它是从程序片中得到的,因此可以过载任何非确定的方法。当我们为程序片过载handleEvent()时,我们会得到所有的事件在它们发送出去之前,所以我们不能假设“这里有我的按钮可做的事件,所以我们可以假设按钮被按下了”从它被action()设为真值。在handleEvent() 中按钮拥有焦点且某人对它进行分配都是可能的。不论它合理与否,我们可测试这些事件并遵照handleEvent()来进行操作。为了修改列表样本,使它会响应鼠标的单击,在action()中按钮测试将被过载,但代码会处理的列表将像下面的例子被移进handleEvent()中去:

    9.3     代码8

    import java.awt.*;

    import java.applet.*;

    publicclass List2 extends Applet {

        String[] flavors = {"Chocolate", "Strawberry","Vanilla Fudge Swirl","Mint Chip", "Mocha Almond Fudge",

                "Rum Raisin","Praline Cream","Mud Pie" };

        // Show 6items, allow multiple selection:

        List lst =new List(6, true);

        TextArea t =new TextArea(flavors.length, 30);

        Button b =new Button("test");

        intcount= 0;

     

        publicvoidinit() {

            t.setEditable(false);

            for (inti = 0; i < 4;i++)

                lst.addItem(flavors[count++]);

            add(t);

            add(lst);

            add(b);

        }

     

        publicbooleanhandleEvent(Event evt){

            if (evt.id== Event.LIST_SELECT ||evt.id == Event.LIST_DESELECT){

                if (evt.target.equals(lst)) {

                    t.setText("");

                    String[] items = lst.getSelectedItems();

                    for (inti = 0; i < items.length; i++)

                        t.appendText(items[i] +"\n");

                } else

                    returnsuper.handleEvent(evt);

            } else

                returnsuper.handleEvent(evt);

            returntrue;

        }

     

        publicbooleanaction(Event evt,Object arg){

            if (evt.target.equals(b)) {

                if (count <flavors.length)

                    lst.addItem(flavors[count++], 0);

            } else

                returnsuper.action(evt,arg);

            returntrue;

        }

    } /// :~

    这个例子同前面的例子相同除了增加了handleEvent()外简直一模一样。在程序中做了试验来验证是否列表框的选择和非选择存在。现在请记住,handleEvent()被程序片所过载,所以它能在窗体中任何存在,并且被其它的列表当成事件来处理。因此我们同样必须通过试验来观察目标。(虽然在这个例子中,程序片中只有一个列表框所以我们能假设所有的列表框事件必须服务于列表框。这是一个不好的习惯,一旦其它的列表框加入,它就会变成程序中的一个缺陷。)如果列表框匹配一个我们感兴趣的列表框,像前面的一样的代码将按上面的策略来运行。注意handleEvent()的窗体与action()的相同:如果我们处理一个单独的事件,将返回真值,但如果我们对其它的一些事件不感兴趣,通过handleEvent()我们必须返回super.handleEvent()值。这便是程序的核心,如果我们不那样做,其它的任何一个事件处理代码也不会被调用。例如,试注解在上面的代码中返回super.handleEvent(evt) 的值。我们将发现action() 没有被调用,当然那不是我们想得到的。对action() 和handlEvent()而言,最重要的是跟着上面例子中的格式,并且当我们自己不处理事件时一直返回基础类的方法版本信息。(在例子中我们将返回真值)。(幸运的是,这些类型的错误的仅属于Java1.0 版,在本章后面将看到的新设计的Java 1.1 消除了这些类型的错误。)在windows 里,如果我们按下shift 键,列表框自动允许我们做多个选择。这非常的棒,因为它允许用户做单个或多个的选择而不是编程期间固定的。我们可能会认为我们变得更加的精明,并且当一个鼠标单击被evt.shiftdown()产生时如果shift 键是按下的将执行我们自己的试验程序。AWT 的设计妨碍了我们-我们不得不去了解哪个项目被鼠标点击时是否按下了shift 键,所以我们能取消其余部分所有的选择并且只选择那一个。不管怎样,我们是不可能在Java 1.0 版中做出来的。(Java 1.1 将所有的鼠标、键盘、焦点事件传送到列表中,所以我们能够完成它。)

               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • java编程语言中,单选框按钮没有单独的类,而是作为复选框的特例存在,用户通过把一组复选框放置在同一个复选框中创建一套单选框按钮。它的构造和其它方法如下: public Checkbox()  创建一个没有标签的复选...

     

    复选框是一个图形组件,有两个状态,即“选中”和“未选中”。单击复选框时可以在“选中”“未选中”之间进行切换。在java编程语言中,单选框按钮没有单独的类,而是作为复选框的特例存在,用户通过把一组复选框放置在同一个复选框中创建一套单选框按钮。它的构造和其它方法如下:
    public Checkbox()
      创建一个没有标签的复选框。
    public Checkbox(String label)
      创建一个标签为lable的复选框。
    public Checkbox(String label, boolean state)
    创建一个标签为label的复选框,并设置初始状态。
    public CheckboxGroup()
    创建一个复选框组,用来放置单选按钮。
    public checkbox(string label , CheckboxGroup group,boolean state)
    创建一个标签为label的复选框,添加到group组中设置初始状态,作为单选按钮的形式出现。
    public String getLabel()
     获得复选框的标签
    public void setLabel(String label)
    设置标签
    public boolean getState()
    返回复选框所在的状态,是选中还是未选中。
    public void setState(boolean state)
    设置状态,用来初始化复选框的状态。

    程序例子:
    测试复选框和单选框的用法。
    //程序文件名字为Text.java
    import java.util.Date;
    import java.applet.*;
    import java.applet.Applet;
    import java.awt.*;

     

    public class Test extends Applet{
    String str1=new String();
    boolean b1=false;
    boolean b2=false;
    Checkbox c1,c2,c3;
    Checkbox cRadio1,cRadio2;
    CheckboxGroup c;
    public void init()
    {
     c1=new Checkbox();
     c2=new Checkbox("复选框对象2");
     c3=new Checkbox("复选框对象3",true);
     //构造单选按钮
     c=new CheckboxGroup();
     cRadio1=new Checkbox("单选按钮1",c,false);
     cRadio2=new Checkbox("单选按钮2",c,true);
     //添加到页面
     this.add(c1);
     this.add(c2);
     this.add(c3);
     this.add(cRadio1);
     this.add(cRadio2);
     
    }
    public void start()
    {
    c1.setLabel("复选框对象1");
    str1=c2.getLabel();
    b1=c3.getState();
    b2=cRadio1.getState();
    repaint();

    }
    public void paint(Graphics g)

    g.drawString("获取第二个对象的标签:"+str1, 40,80);
    g.drawString("复选框3的状态为:"+b1, 40, 100);
    g.drawString("单选框按钮1的状态为:"+b2, 40, 120);
    }

    }

    展开全文
  • 49.java编程思想——创建窗口和程序片 文本 复选框 单选框 下拉列表 “文本字段”是允许用户输入和编辑文字的一种线性区域。文本字段从文本组件那里继承了让我们选择文字、让我们像得到字符串一样得到选择的文字,...

    49.java编程思想——创建窗口和程序片 文本 复选框 单选框 下拉列表

    “文本字段”是允许用户输入和编辑文字的一种线性区域。文本字段从文本组件那里继承了让我们选择文字、让我们像得到字符串一样得到选择的文字,得到或设置文字,设置文本字段是否可编辑以及连同我们从在线参考书中找到的相关方法。

    1     代码1

    import java.awt.*;

    import java.applet.*;

    public class TextField1 extends Applet {

        Button b1 = new Button("Get Text"), b2 = new Button("Set Text");

        TextField t = new TextField("Starting text", 30);

        String s = new String();

        public voidinit() {

            add(b1);

            add(b2);

            add(t);

        }

        public booleanaction(Event evt,Object arg){

            if (evt.target.equals(b1)) {

                getAppletContext().showStatus(t.getText());

                s = t.getSelectedText();

                if (s.length() == 0)

                    s = t.getText();

                t.setEditable(true);

            } else if (evt.target.equals(b2)) {

                t.setText("Inserted by Button 2: "+ s);

                t.setEditable(false);

            }

            // Let the base class handle it:

            else

                return super.action(evt, arg);

            return true; // We'vehandled it here

        }

    } /// :~

    有几种方法均可构建一个文本字段;其中之一是提供一个初始字符串,并设置字符域的大小。

    按下按钮1 是得到我们用鼠标选择的文字就是得到字段内所有的文字并转换成字符串S。它也允许字段被编辑。按下按钮2 放一条信息和字符串s 到Text fields,并且阻止字段被编辑(尽管我们能够一直选择文字)。文字的可编辑性是通过setEditable() 的真假值来控制的。

    2     文本区域

    “文本区域”很像文字字段,只是它拥有更多的行以及一些引人注目的更多的功能。另外你能在给定位置对一个文本字段追加、插入或者修改文字。这看起来对文本字段有用的功能相当不错,所以设法发现它设计的特性会产生一些困惑。我们可以认为如果我们处处需要“文本区域”的功能,那么可以简单地使用一个线型文字区域在我们将另外使用文本字段的地方。在Java 1.0 版中,当它们不是固定的时候我们也得到了一个文本区域的垂直和水平方向的滚动条。在Java 1.1 版中,对高级构建器的修改允许我们选择哪个滚动条是当前的。下面的例子演示的仅仅是在Java1.0 版的状况下滚动条一直打开。在下一章里我们将看到一个证明Java1.1 版中的文字区域的例程。

    3     代码2

    import java.awt.*;

    import java.applet.*;

    public class TextArea1 extends Applet {

        Button b1 = new Button("Text Area 1");

        Button b2 = new Button("Text Area 2");

        Button b3 = new Button("Replace Text");

        Button b4 = new Button("Insert Text");

        TextArea t1 = new TextArea("t1", 1, 30);

        TextArea t2 = new TextArea("t2", 4, 30);

     

        public voidinit() {

            add(b1);

            add(t1);

            add(b2);

            add(t2);

            add(b3);

            add(b4);

        }

     

        public booleanaction(Event evt,Object arg){

            if (evt.target.equals(b1))

                getAppletContext().showStatus(t1.getText());

            else if (evt.target.equals(b2)) {

                t2.setText("Inserted by Button 2");

                t2.appendText(": "+ t1.getText());

                getAppletContext().showStatus(t2.getText());

            } else if (evt.target.equals(b3)) {

                String s = "Replacement ";

                t2.replaceText(s, 3, 3 + s.length());

            } else if (evt.target.equals(b4))

                t2.insertText(" Inserted ",10);

            // Let the base class handle it:

            else

                return super.action(evt, arg);

            return true; // We'vehandled it here

        }

    } /// :~

    程序中有几个不同的“文本区域”构建器,这其中的一个在此处显示了一个初始字符串和行号和列号。不同的按钮显示得到、追加、修改和插入文字。

    4     标签

    标签准确地运作:安放一个标签到窗体上。这对没有标签的TextFields 和Text areas 来说非常的重要,如果我们简单地想安放文字的信息在窗体上也能同样的使用。我们能像本章中第一个例程中演示的那样,使用drawString()里边的paint()在确定的位置去安置一个文字。当我们使用的标签允许我们通过布局管理加入其它的文字组件。

    使用构建器我们能创建一条包括初始化文字的标签(这是我们典型的作法),一个标签包括一行CENTER(中间)、LEFT(左)和RIGHT(右)(静态的结果取整定义在类标签里)。如果我们忘记了可以用getText()和getalignment()读取值,我们同样可以用setText()和setAlignment()来改变和调整。

    4.1     代码3

    import java.awt.*;

    import java.applet.*;

    public class Label1 extends Applet {

        TextField t1 = new TextField("t1", 10);

        Label labl1 = new Label("TextField t1");

        Label labl2 = new Label(" ");

        Label labl3 = new Label(" ", Label.RIGHT);

        Button b1 = new Button("Test 1");

        Button b2 = new Button("Test 2");

        public voidinit() {

            add(labl1);

            add(t1);

            add(b1);

            add(labl2);

            add(b2);

            add(labl3);

        }

     

        public booleanaction(Event evt,Object arg){

            if (evt.target.equals(b1))

                labl2.setText("Text set into Label");

            else if (evt.target.equals(b2)) {

                if (labl3.getText().trim().length() == 0)

                    labl3.setText("labl3");

                if (labl3.getAlignment() == Label.LEFT)

                    labl3.setAlignment(Label.CENTER);

                else if (labl3.getAlignment() == Label.CENTER)

                    labl3.setAlignment(Label.RIGHT);

                else if (labl3.getAlignment() == Label.RIGHT)

                    labl3.setAlignment(Label.LEFT);

            } else

                return super.action(evt, arg);

            return true;

        }

    } /// :~

    首先是标签的最典型的用途:标记一个文本字段或文本区域。在例程的第二部分,当我们按下“test 1”按钮通过setText()将一串空的空格插入到的字段里。因为空的空格数不等于同样的字符数(在一个等比例间隔的字库里),当插入文字到标签里时我们会看到文字将被省略掉。在例子的第三部分保留的空的空格在我们第一次按下“test 2”会发现标签是空的(trim()删除了每个字符串结尾部分的空格)并且在开头的左列插入了一个短的标签。在工作的其余时间中我们按下按钮进行调整,因此就能看到效果。

    我们可能会认为我们可以创建一个空的标签,然后用setText()安放文字在里面。然而我们不能在一个空标签内加入文字-这大概是因为空标签没有宽度-所以创建一个没有文字的空标签是没有用处的。在上面的例子里,“blank”标签里充满空的空格,所以它足够容纳后面加入的文字。

    同样的,setAlignment()在我们用构建器创建的典型的文字标签上没有作用。这个标签的宽度就是文字的宽度,所以不能对它进行任何的调整。但是,如果我们启动一个长标签,然后把它变成短的,我们就可以看到调整的效果。

    这些导致事件连同它们最小化的尺寸被挤压的状况被程序片使用的默认布局管理器所发现。

    5     复选框

    复选框提供一个制造单一选择开关的方法;它包括一个小框和一个标签。典型的复选框有一个小的“X”(或者它设置的其它类型)或是空的,这依靠项目是否被选择来决定的。

    我们会使用构建器正常地创建一个复选框,使用它的标签来充当它的自变量。如果我们在创建复选框后想读出或改变它,我们能够获取和设置它的状态,同样也能获取和设置它的标签。注意,复选框的大写是与其它的控制相矛盾的。

    无论何时一个复选框都可以设置和清除一个事件指令,我们可以捕捉同样的方法做一个按钮。在下面的例子里使用一个文字区域枚举所有被选中的复选框:

    5.1     代码4

    import java.awt.*;

    import java.applet.*;

    public class CheckBox1 extends Applet {

        TextArea t = new TextArea(6, 20);

        Checkbox cb1 = new Checkbox("Check Box 1");

        Checkbox cb2 = new Checkbox("Check Box 2");

        Checkbox cb3 = new Checkbox("Check Box 3");

        public voidinit() {

            add(t);

            add(cb1);

            add(cb2);

            add(cb3);

        }

        public booleanaction(Event evt,Object arg){

            if (evt.target.equals(cb1))

                trace("1", cb1.getState());

            else if (evt.target.equals(cb2))

                trace("2", cb2.getState());

            else if (evt.target.equals(cb3))

                trace("3", cb3.getState());

            else

                return super.action(evt, arg);

            return true;

        }

        void trace(String b,booleanstate){

            if (state)

                t.appendText("Box "+ b+ " Set\n");

            else

                t.appendText("Box "+ b+ " Cleared\n");

        }

    } /// :~

    trace()方法将选中的复选框名和当前状态用appendText()发送到文字区域中去,所以我们看到一个累积的被选中的复选框和它们的状态的列表。

    6     单选钮

    单选钮在GUI 程序设计中的概念来自于老式的电子管汽车收音机的机械按钮:当我们按下一个按钮时,其它的按钮就会弹起。因此它允许我们强制从众多选择中作出单一选择。

    AWT 没有单独的描述单选钮的类;取而代之的是复用复选框。然而将复选框放在单选钮组中(并且修改它的外形使它看起来不同于一般的复选框)我们必须使用一个特殊的构建器象一个自变量一样的作用在checkboxGroup 对象上。(我们同样能在创建复选框后调用setCheckboxGroup()方法。)

    一个复选框组没有构建器的自变量;它存在的唯一理由就是聚集一些复选框到单选钮组里。一个复选框对象必须在我们试图显示单选钮组之前将它的状态设置成true,否则在运行时我们就会得到一个异常。如果我们设置超过一个的单选钮为true,只有最后的一个能被设置成真。

    6.1     代码5

    import java.awt.*;

    import java.applet.*;

    public class RadioButton1 extends Applet {

        TextField t = new TextField("Radio button 2", 30);

        CheckboxGroup g = new CheckboxGroup();

        Checkbox cb1 = new Checkbox("one", g, false), cb2 = new Checkbox("two", g, true),

                cb3 = new Checkbox("three", g, false);

     

        public voidinit() {

            t.setEditable(false);

            add(t);

            add(cb1);

            add(cb2);

            add(cb3);

        }

     

        public booleanaction(Event evt,Object arg){

            if (evt.target.equals(cb1))

                t.setText("Radio button 1");

            else if (evt.target.equals(cb2))

                t.setText("Radio button 2");

            else if (evt.target.equals(cb3))

                t.setText("Radio button 3");

            else

                return super.action(evt, arg);

            return true;

        }

    } /// :~

    显示的状态是一个文字字段在被使用。这个字段被设置为不可编辑的,因为它只是用来显示数据而不是收集。这演示了一个使用标签的可取之道。注意字段内的文字是由最早选择的单选钮“Radio button 2”初始化的。

    我们可以在窗体中拥有相当多的复选框组。

    7     下拉列表

    下拉列表像一个单选钮组,它是强制用户从一组可实现的选择中选择一个对象的方法。而且,它是一个实现这点的相当简洁的方法,也最易改变选择而不至使用户感到吃力(我们可以动态地改变单选钮,但那种方法显然不方便)。Java 的选择框不像Windows 中的组合框可以让我从列表中选择或输入自己的选择。在一个选择框中你只能从列表中选择仅仅一个项目。在下面的例子里,选择框从一个确定输入的数字开始,然后当按下一个按钮时,新输入的数字增加到框里。

    8     代码6

    import java.awt.*;

    import java.applet.*;

    public class Choice1 extends Applet {

        String[] description = { "Ebullient", "Obtuse","Recalcitrant", "Brilliant", "Somnescent", "Timorous", "Florid",

                "Putrescent" };

        TextField t = new TextField(30);

        Choice c = new Choice();

        Button b = new Button("Add items");

        int count= 0;

        public voidinit() {

            t.setEditable(false);

            for (int i = 0; i < 4; i++)

                c.addItem(description[count++]);

            add(t);

            add(c);

            add(b);

        }

        public booleanaction(Event evt,Object arg){

            if (evt.target.equals(c))

                t.setText("index: " + c.getSelectedIndex() + " " + (String) arg);

            else if (evt.target.equals(b)) {

                if (count < description.length)

                    c.addItem(description[count++]);

            } else

                return super.action(evt, arg);

            return true;

        }

    } /// :~

    文本字字段中显示的“selected index,"也就是当前选择的项目的序列号,在事件中选择的字符串就像action()的第二个自变量的字串符描述的一样好。

    运行这个程序片时,请注意对Choice 框大小的判断:在windows 里,这个大小是在我们拉下列表时确定的。

    这意味着如果我们拉下列表,然后增加更多的项目到列表中,这项目将在那,但这个下拉列表不再接受。然而,如果我们在第一次拉下下拉列表前将所的项目装入下拉列表,它的大小就会合适。当然,用户在使用时希望看到整个的列表,所以会在下拉列表的状态里对增加项目到选择框里加以特殊的限定。

    9     列表框

    列表框与选择框有完全的不同,而不仅仅是当我们在激活选择框时的显示不同,列表框固定在屏幕的指定位置不会改变。另外,一个列表框允许多个选择:如果我们单击在超过一个的项目上,未选择的则表现为高亮度,我们可以选择象我们想要的一样的多。如果我们想察看项目列表,我们可以调用getSelectedItem()来产生一个被选择的项目列表。要想从一个组里删除一个项目,我们必须再一次的单击它。列表框,当然这里有一个问题就是它默认的动作是双击而不是单击。单击从组中增加或删除项目,双击调用action()。解决这个问题的方法是象下面的程序假设的一样重新培训我们的用户。

    9.1     代码7

    import java.awt.*;

    import java.applet.*;

    public class List1 extends Applet {

        String[] flavors = { "Chocolate", "Strawberry","Vanilla Fudge Swirl", "Mint Chip", "Mocha Almond Fudge",

                "Rum Raisin", "Praline Cream","Mud Pie" };

        // Show 6items, allow multiple selection:

        List lst = new List(6, true);

        TextArea t = new TextArea(flavors.length, 30);

        Button b = new Button("test");

        int count= 0;

        public voidinit() {

            t.setEditable(false);

            for (int i = 0; i < 4; i++)

                lst.addItem(flavors[count++]);

            add(t);

            add(lst);

            add(b);

        }

        public booleanaction(Event evt,Object arg){

            if (evt.target.equals(lst)) {

                t.setText("");

                String[] items = lst.getSelectedItems();

                for (int i = 0; i < items.length; i++)

                    t.appendText(items[i] + "\n");

            } else if (evt.target.equals(b)) {

                if (count < flavors.length)

                    lst.addItem(flavors[count++], 0);

            } else

                return super.action(evt, arg);

            return true;

        }

    } /// :~

    按下按钮时,按钮增加项目到列表的顶部(因为addItem()的第二个自变量为零)。增加项目到列表框比到选择框更加的合理,因为用户期望去滚动一个列表框(因为这个原因,它有内建的滚动条)但用户并不愿意像在前面的例子里不得不去计算怎样才能滚动到要要的那个项目。

    然而,调用action()的唯一方法就是通过双击。如果我们想监视用户在我们的列表中的所作所为(尤其是单击),我们必须提供一个可供选择的方法。

    9.2     h a n d l e E v e n t ( )

    已使用了action(),现有另一种方法handleEvent()可对每一事件进行尝试。当一个事件

    发生时,它总是针对单独事件或发生在单独的事件对象上。该对象的handleEvent()方法是自动调用的,并且是被handleEvent() 创建并传递到handleEvent()里。默认的handleEvent()(handleEvent()定义在组件里,基础类的所有控件都在AWT 里)将像我们以前一样调用action()或其它同样的方法去指明鼠标的活动、键盘活动或者指明移动的焦点。我们将会在本章的后面部分看到。如果其它的方法-特别是action()-不能满足我们的需要怎么办呢?至于列表框,例如,如果我想捕捉鼠标单击,但action()只响应双击怎么办呢?这个解答是过载handleEvent(),毕竟它是从程序片中得到的,因此可以过载任何非确定的方法。当我们为程序片过载handleEvent()时,我们会得到所有的事件在它们发送出去之前,所以我们不能假设“这里有我的按钮可做的事件,所以我们可以假设按钮被按下了”从它被action()设为真值。在handleEvent() 中按钮拥有焦点且某人对它进行分配都是可能的。不论它合理与否,我们可测试这些事件并遵照handleEvent()来进行操作。为了修改列表样本,使它会响应鼠标的单击,在action()中按钮测试将被过载,但代码会处理的列表将像下面的例子被移进handleEvent()中去:

    9.3     代码8

    import java.awt.*;

    import java.applet.*;

    public class List2 extends Applet {

        String[] flavors = { "Chocolate", "Strawberry","Vanilla Fudge Swirl", "Mint Chip", "Mocha Almond Fudge",

                "Rum Raisin", "Praline Cream","Mud Pie" };

        // Show 6items, allow multiple selection:

        List lst = new List(6, true);

        TextArea t = new TextArea(flavors.length, 30);

        Button b = new Button("test");

        int count= 0;

     

        public voidinit() {

            t.setEditable(false);

            for (int i = 0; i < 4; i++)

                lst.addItem(flavors[count++]);

            add(t);

            add(lst);

            add(b);

        }

     

        public booleanhandleEvent(Event evt){

            if (evt.id== Event.LIST_SELECT || evt.id == Event.LIST_DESELECT){

                if (evt.target.equals(lst)) {

                    t.setText("");

                    String[] items = lst.getSelectedItems();

                    for (int i = 0; i < items.length; i++)

                        t.appendText(items[i] + "\n");

                } else

                    return super.handleEvent(evt);

            } else

                return super.handleEvent(evt);

            return true;

        }

     

        public booleanaction(Event evt,Object arg){

            if (evt.target.equals(b)) {

                if (count < flavors.length)

                    lst.addItem(flavors[count++], 0);

            } else

                return super.action(evt, arg);

            return true;

        }

    } /// :~

    这个例子同前面的例子相同除了增加了handleEvent()外简直一模一样。在程序中做了试验来验证是否列表框的选择和非选择存在。现在请记住,handleEvent()被程序片所过载,所以它能在窗体中任何存在,并且被其它的列表当成事件来处理。因此我们同样必须通过试验来观察目标。(虽然在这个例子中,程序片中只有一个列表框所以我们能假设所有的列表框事件必须服务于列表框。这是一个不好的习惯,一旦其它的列表框加入,它就会变成程序中的一个缺陷。)如果列表框匹配一个我们感兴趣的列表框,像前面的一样的代码将按上面的策略来运行。注意handleEvent()的窗体与action()的相同:如果我们处理一个单独的事件,将返回真值,但如果我们对其它的一些事件不感兴趣,通过handleEvent()我们必须返回super.handleEvent()值。这便是程序的核心,如果我们不那样做,其它的任何一个事件处理代码也不会被调用。例如,试注解在上面的代码中返回super.handleEvent(evt) 的值。我们将发现action() 没有被调用,当然那不是我们想得到的。对action() 和handlEvent()而言,最重要的是跟着上面例子中的格式,并且当我们自己不处理事件时一直返回基础类的方法版本信息。(在例子中我们将返回真值)。(幸运的是,这些类型的错误的仅属于Java1.0 版,在本章后面将看到的新设计的Java 1.1 消除了这些类型的错误。)在windows 里,如果我们按下shift 键,列表框自动允许我们做多个选择。这非常的棒,因为它允许用户做单个或多个的选择而不是编程期间固定的。我们可能会认为我们变得更加的精明,并且当一个鼠标单击被evt.shiftdown()产生时如果shift 键是按下的将执行我们自己的试验程序。AWT 的设计妨碍了我们-我们不得不去了解哪个项目被鼠标点击时是否按下了shift 键,所以我们能取消其余部分所有的选择并且只选择那一个。不管怎样,我们是不可能在Java 1.0 版中做出来的。(Java 1.1 将所有的鼠标、键盘、焦点事件传送到列表中,所以我们能够完成它。)

    展开全文
  • java单选按钮实例

    2012-11-09 16:39:59
    单选按钮,实现点击一个按钮就能激发相应的事件,从而显示相应的图片
  • 第9章 反转按钮、复选框和单选框  本章介绍三种Swing按钮:反转按钮、复选按钮和单选按钮,它们分别由JToggleButton、JCheckBox和JRadioButton类代表。 这三种按钮都是AbstractButton类的最终扩展。...
  • 在项目开发的时候,...而我们常用的AlertDialog.Builder也有实现这样的方法:setSingleChoiceItems(ListAdapter adapter, int checkedItem, final OnClickListener)我们就用这个方法弹一个单选框看看:AlertDialog.B
  • Android开发-单选框/多选框

    千次阅读 2017-03-07 15:21:59
    这是某位大哥做的单选框和多选框 可以参考 ...——————单选框(RadioButton)———— package com.example.radiobutton; import Android.os.Bundle; import android
  • Android基础控件之单选框(RadioButton)

    万次阅读 2013-03-10 15:36:10
    要完成单选框显示,我们需要使用到RadioGroup和RadioButton(单选框), RadioGroup用于对单选框进行分组,相同组内的单选框只有一个单选框能被选中。(例子代码请见下方备注栏)  RadioGroup.check(R.id.dotNet);将...
  • 1.单选框(RadioButton) package com.example.radiobutton; import Android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.RadioButton; import android.widge
  • 这个内容比较简单,但是要注意的是,当用单选框的时候,记得把单选框都放进ButtonGroup里面管理。 这个其实也好理解,如果你不放到ButtonGroup里的话,它还是相当于复选框,你选性别的时候就既可以 选男,也可以选...
  • axure下拉列表框单选框First, let’s clarify what exactly is a dropdown menu, and what is a combo box, aren’t they the same? Well … no, not really, let me explain. 首先,让我们弄清楚什么是下拉菜单,...
  • 安卓对话框之---单选框(RadioButton)

    万次阅读 2013-06-25 17:19:10
    简单概括一下原理:要完成单选框显示,我们需要使用到RadioGroup和RadioButton(单选框),RadioGroup用于对单选框进行分组,相同组内的单选框只有一个单选框能被选中。(例子代码请见下方备注栏)  RadioGroup.check...
  • 1.单选框操作:单选框在Android里面随处可见,它是由两部分组成的,一部分是RadioGroup,一部分是RadioButton。一个RadioGroup里面是有多个RadioButton。每个RadioButton就是一个单选项,而控制的时候是控
  • 单选框操作:单选框在Android里面随处可见,它是由两部分组成的,一部分是RadioGroup,一部分是RadioButton。一个RadioGroup里面是有多个RadioButton。每个RadioButton就是一个单选项,而控制的时候是控制RadioGroup...
  • 单选框的用法即几种常见对话框

    千次阅读 2016-08-18 20:26:29
    一、单选框 RadioGroup的组事件,可以将各自不同的RadioButton,设定与同一个RadioGroup组里的按钮,做出单一选择。 RadioGroup中使用类组单选按钮。如果我们选中一个单选按钮属于一个单选按钮组,它会自动取消...
  • Struts单选框的实现

    千次阅读 2004-06-13 16:11:00
    Struts单选框的实现 [相关链接]《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.csdn.net/develop/article/28/28871.shtm《如何实现最简单的Struts程序》...
  • 有很多方法来填充数据到单选按钮,可以通过List, OGNL 或 Object。请查看下面的例子就知道了。 Struts2 <s:radio> 示例 举个例子来说明如何使用列表,OGNL和对象数据填充到Struts2中,使用<s:radio>...
  • 第9章 反转按钮、复选框和单选框

    千次阅读 2009-11-24 18:02:00
    第9章 反转按钮、复选框和单选框 本章介绍三种Swing按钮:反转按钮、复选按钮和单选按钮,它们分别由JToggleButton、JCheckBox和JRadioButton类代表。 这三种按钮都是AbstractButton类的最终扩展。AbstractButton...
  • java swing菜单例子

    千次阅读 2010-02-24 22:35:00
    为了预防浪费和冗长的多个Boolean创建的对象和类型标志,以下的这些在类开始时就作为static final被创建:bT和bF描述Booleans和哑类MType的不同对象描述标准的菜单项(mi),复选菜单项(cb),和单选钮菜单项(rb...
  •  页面将答题列表传递给调用组件,组件将结果返回给调用页面(其它模式也ok,这只是例子) --------------------------------------------分割线----------------------------------------------- 组件 zuj...
  • 内容索引:Java源码,窗体界面,图形界面,窗体 Java 创建图形用户界面例子集,学习用Java创建窗体按钮、图标、按下图标和翻转图标、复选单选按钮、标签、文本域、、组合、列表、滚动条、滑动块、创建多个窗口...
  • 请大家伙多多指教: ... 请关注:ailiandeziwei ...1.单选框(RadioButton) package com.example.radiobutton; import android.os.Bundle; import android.app.Activity; import android.view.
  • 1.通过js实现单选  function selectOne(obj,objCheckBox) {  for ( var i = 0; i < objCheckBox.length; i++) {  if (objCheckBox[i] != obj) {  objCheckBox[i].checked = false;  } else {...
  • java编程创建单选按钮

    2015-10-07 22:24:47
    java编程来实现单选按钮组件,通过使用单选按钮来实现性别选择,并创建监听器进行监听。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,502
精华内容 3,400
关键字:

java单选框例子

java 订阅