Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我希望我的图形用户界面接受整数_Java_User Interface_Input - Fatal编程技术网

Java 我希望我的图形用户界面接受整数

Java 我希望我的图形用户界面接受整数,java,user-interface,input,Java,User Interface,Input,你好,我的工作有问题。我想要一个图形用户界面,以“插入名称编号”的形式接受单个语句 例如,这样的命令是“插入Whiz 105” 我已经编写了Java程序,在用户输入中使用“插入”字和字符串。然而,我不知道如何让Java在一条语句中同时检测字符串和整数 当用户在GUI中输入字符串和整数时,如何创建一个允许我分离字符串和整数的语句?。例如,我没有为字符串和整数创建两个输入,而是使用一个输入来引用它们 这是我的代码,请根据您的答案 import java.awt.*; import java.awt.

你好,我的工作有问题。我想要一个图形用户界面,以“插入名称编号”的形式接受单个语句

例如,这样的命令是“插入Whiz 105

我已经编写了Java程序,在用户输入中使用“插入”字和字符串。然而,我不知道如何让Java在一条语句中同时检测字符串和整数

当用户在GUI中输入字符串和整数时,如何创建一个允许我分离字符串和整数的语句?。例如,我没有为字符串和整数创建两个输入,而是使用一个输入来引用它们

这是我的代码,请根据您的答案

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

/**
   This class is used to demonstrate
   the operations in the LinkedList1 class.
*/

public class LinkedList1Demo extends JFrame
{    
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private LinkedList<String> names;


    private JTextArea  listView;
    private JTextField cmdTextField;
    private JTextField resultTextField;

    public LinkedList1Demo()
    {
       names = new LinkedList<String>(); 
       listView = new JTextArea();
       cmdTextField = new JTextField();
       resultTextField = new JTextField();       

       // Create a panel and label for result field
       JPanel resultPanel = new JPanel(new GridLayout(1,2));
       resultPanel.add(new JLabel("Command Result"));
       resultPanel.add(resultTextField);
       resultTextField.setEditable(false);
       add(resultPanel, BorderLayout.PAGE_START);

       // Put the textArea in the center of the frame
       add(listView);
       listView.setEditable(false);
       listView.setBackground(Color.WHITE);
       listView.setPreferredSize(new Dimension(200, 25));



       // Create a panel and label for the command text field
       JPanel cmdPanel = new JPanel(new GridLayout(1,2));
       cmdPanel.add(new JLabel("Command Name:"));
       cmdPanel.add(cmdTextField);
       add(cmdPanel, BorderLayout.PAGE_END);  
       cmdTextField.addActionListener(new CmdTextListener());
       cmdPanel.setPreferredSize(new Dimension(200, 25));

       // Set up the frame
       setTitle("Linked List Demo");
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       pack();
       setVisible(true);       
    }

    /**
       Private class that responds to the command that 
       the user types into the command entry text field.
    */

    private class CmdTextListener
            implements ActionListener
    {            
        public void actionPerformed(ActionEvent evt)
        {
            String cmdText = cmdTextField.getText();

            Scanner sc = new Scanner(cmdText);

            String cmd = sc.next();

            if (cmd.equals("insert"))
            {
                if (sc.hasNextInt())
                {
                    // add index element
                    int index = sc.nextInt();
                    String element = sc.next();
                    names.add(index, element);                
                }
                else
                {  
                    // add element
                    String element = sc.next();
                    names.add(element);                
                }
                listView.setText(names.toString());
                pack();
                return;
            }
            if (cmd.equals("remove"))
            {
                if (sc.hasNextInt())
                {
                    // remove index
                    int index = sc.nextInt();
                    Object obj = names.remove(index);
                    String res = obj.toString();
                    resultTextField.setText(res);              
                }
                else
                {
                    // remove element
                    String element = sc.next();
                    boolean res = names.remove(element);
                          String resText = String.valueOf(res);
                    resultTextField.setText(resText);
                }
                listView.setText(names.toString());
                pack();
                return;
            }
            if (cmd.equals("isempty"))
            {
                    String resText = String.valueOf(names.isEmpty());
                resultTextField.setText(resText);
                return;
            }
            if (cmd.equals("size"))
            {
                   String resText = String.valueOf(names.size());
               resultTextField.setText(resText);
               return;
            }

        }
    }

    /**
       The main method creates an instance of the 
       LinkedList1Demo class which causes it to 
       display its window.
    */

    public static void main(String [ ] args)
    {
        new LinkedList1Demo();

    }

}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入java.util.*;
/**
本课程用于演示
LinkedList1类中的操作。
*/
公共类LinkedList1Demo扩展了JFrame
{    
/**
* 
*/
私有静态最终长serialVersionUID=1L;
私有链接列表名称;
私有区域列表视图;
私有JTextField cmdTextField;
私有JTextField resultTextField;
公共LinkedList1Demo()
{
名称=新的LinkedList();
listView=新的JTextArea();
cmdTextField=新的JTextField();
resultTextField=新的JTextField();
//为结果字段创建面板和标签
JPanel resultPanel=新的JPanel(新的网格布局(1,2));
添加(新JLabel(“命令结果”);
resultPanel.add(resultTextField);
resultTextField.setEditable(false);
添加(resultPanel,BorderLayout.PAGE_START);
//将文本区域放在框架的中心
添加(列表视图);
listView.setEditable(false);
listView.setBackground(颜色:白色);
setPreferredSize(新维度(200,25));
//为命令文本字段创建面板和标签
JPanel-cmdPanel=newjpanel(newgridlayout(1,2));
添加(新的JLabel(“命令名:”);
cmdPanel.add(cmdTextField);
添加(cmdPanel,BorderLayout.PAGE_END);
cmdTextField.addActionListener(新CmdTextListener());
setPreferredSize(新维度(200,25));
//架起架子
setTitle(“链接列表演示”);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
包装();
setVisible(真);
}
/**
响应命令的私有类
用户在命令输入文本字段中键入。
*/
私有类CmdTextListener
实现ActionListener
{            
已执行的公共无效操作(操作事件evt)
{
字符串cmdText=cmdTextField.getText();
扫描仪sc=新扫描仪(cmdText);
字符串cmd=sc.next();
如果(cmd.equals(“插入”))
{
if(sc.hasnetint())
{
//添加索引元素
int index=sc.nextInt();
String元素=sc.next();
名称。添加(索引、元素);
}
其他的
{  
//添加元素
String元素=sc.next();
名称。添加(元素);
}
setText(names.toString());
包装();
返回;
}
if(cmd.equals(“remove”))
{
if(sc.hasnetint())
{
//删除索引
int index=sc.nextInt();
Object obj=names.remove(索引);
String res=obj.toString();
resultTextField.setText(res);
}
其他的
{
//删除元素
String元素=sc.next();
布尔res=名称。删除(元素);
String resText=String.valueOf(res);
resultTextField.setText(resText);
}
setText(names.toString());
包装();
返回;
}
if(cmd.equals(“isempty”))
{
String resText=String.valueOf(names.isEmpty());
resultTextField.setText(resText);
返回;
}
如果(cmd.equals(“size”))
{
String resText=String.valueOf(names.size());
resultTextField.setText(resText);
返回;
}
}
}
/**
main方法创建
LinkedList1Demo类,该类导致
显示其窗口。
*/
公共静态void main(字符串[]args)
{
新建LinkedList1Demo();
}
}

我想请您更好地解释您的要求。但是,如果您确信只会得到一组字符串和一个整数,那么一个快速的方法是使用标记器或split方法分离字符串


然后遍历每个单词,并尝试使用“Integer.parseInt()”方法。如果出现NumberFormatException,则它是一个字符串,您应该将其附加到string对象。否则,它是一个整数,您可以威胁它。

我想请您更好地解释您的要求。但是,如果您确信只会得到一组字符串和一个整数,那么一个快速的方法是使用标记器或split方法分离字符串


然后遍历每个单词,并尝试使用“Integer.parseInt()”方法。如果出现NumberFormatException,则它是一个字符串,您应该将其附加到string对象。否则,它是一个整数,您可以威胁它。

使用
字符串
方法
拆分

String input = /* pull from the text box */.
String[] tokens = input.split("\\s");
if (tokens.length == 3)
{
     String command = tokens[0];
     String intValue= tokens[2];
}
String cmd = sc.next();

try {

    int number = Integer.parseInt(cmd);

} catch (NumberFormatException e) {
     if (cmd.equals("insert"))
            {
                if (sc.hasNextInt())
                {
                    // add index element
                    int index = sc.nextInt();
                    String element = sc.next();
                    names.add(index, element);                
                }
                else
                {  
                    // add element
                    String element = sc.next();
                    names.add(element);                
                }
                listView.setText(names.toString());
                pack();
                return;
            }
            if (cmd.equals("remove"))
            {
                if (sc.hasNextInt())
                {
                    // remove index
                    int index = sc.nextInt();
                    Object obj = names.remove(index);
                    String res = obj.toString();
                    resultTextField.setText(res);              
                }
                else
                {
                    // remove element
                    String element = sc.next();
                    boolean res = names.remove(element);
                          String resText = String.valueOf(res);
                    resultTextField.setText(resText);
                }
                listView.setText(names.toString());
                pack();
                return;
            }
            if (cmd.equals("isempty"))
            {
                    String resText = String.valueOf(names.isEmpty());
                resultTextField.setText(resText);
                return;
            }
            if (cmd.equals("size"))
            {
                   String resText = String.valueOf(names.size());
               resultTextField.setText(resText);
               return;
            }
}