热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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 将所有的鼠标、键盘、焦点事件传送到列表中,所以我们能够完成它。)

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed


推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 开发笔记:select from具体执行相关知识介绍及案例分析
    本文由编程笔记小编整理,主要介绍了select from具体执行相关的知识,包括数据插入、查询最小rowID、查询每个重复名字的最小rowID、删除重复数据等操作,并提供了案例分析。希望对读者有一定的参考价值。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
author-avatar
胡鹏锦_289
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有