JOptionPane使用一个窗口进行输入和输出

时间:2013-12-12 14:36:32

标签: java joptionpane

所以我正在开发一个小项目,我正在寻找如何在JOptionPane中执行此操作的基本代码。我对Java这方面还很陌生。我不是在找很多东西,我只是不知道从哪里开始。

程序应该使用JOptionPane窗口填充屏幕。我需要它像下面的图片一样建模。底行是来自用户的文本输入,当他们点击回车键时,文本应该“刷新/清除”,然后中间的字符串区域应填充用户输入,然后在其下方填充if语句的结果根据代码。

enter image description here

例如:用户输入:“Hello”。 然后文本输入应该刷新,灰色框应该这样做:“用户:你好。”  “电脑:你好用户”。

我真的很感激这方面的所有帮助。

1 个答案:

答案 0 :(得分:1)

你没有System.out.println()进入gui组件。不像这样工作。您可以编写控制台程序并使用JOptionPanes来获取用户输入,但输出将在控制台程序中使用。你需要创建一个模仿控制台的gui程序。

这是一个让你开始的基本布局

public class Game extends JFrame {
    JTextArea jta = new JTextArea(10, 30);
    JTextField jtf = new JTextField(30);

    public Game(){
        add(jtf, BorderLayout.SOUTH);
        add(jta, BorderLayour.CENTER);

        jta.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){

            }
        });
    }

    public static void main(String[] args){
        SwingUtilities.invokeLater(new Runnable(){
            public void run(){
                JFrame frame = new Game();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLocationRelativeTo(null);
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}

我建议的是因为这是一个非常基本的程序,我会使用一个String命令数组并遍历它们。

例如:

String[] question = {"Do you want to go to school?",
                     "Do you want to drive or walk?"};

jta.setText(questions[0]);

然后在你的actionPerformed中从文本字段中获取答案。使用像

这样的if语句
if (jtf.getText().equals("yes") {
    jta.append(questions[1]);
}

等等。如果您不知道我在说什么,我会考虑使用我提到的Swing教程。这些教程中有很多信息。