如何使用JFrame显示字符串和读取输入?

时间:2015-09-17 04:07:26

标签: java swing jframe

我想在窗口上显示此代码。现在它出现在Eclipse的底层,所以我打算在import java.util.Scanner; public class Helloworld { public static void main(String[] args) { System.out.println("INPUT A NUMER TO DISPLAY"); Scanner scan= new Scanner(System.in); int num=scan.nextInt(); System.out.println("THE ENTERED NUMBER IS " +num); } } 上显示。有没有可能这样做?

{{1}}

1 个答案:

答案 0 :(得分:0)

可以使用JFrame执行此操作。但由于它只是一个输入,您可以轻松地使用JOptionPane

import javax.swing.JOptionPane;

public class Test {
    public static void main(String[] args) {

        String inputString = JOptionPane.showInputDialog(null, "INPUT A NUMER TO DISPLAY");
        int input = Integer.parseInt(inputString);
        System.out.println("User input: " + input);

        JOptionPane.showMessageDialog(null, "User entered " + input);

    }
}

这是一个使用JFrame的简单实现。

import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Test {

    public static void main(String[] args) {

        JFrame frame = new JFrame();
        frame.setSize(400, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container container = frame.getContentPane();
        container.setLayout(new FlowLayout());

        JTextField textField = new JTextField();
        textField.setPreferredSize(new Dimension(150, 25));

        JLabel label = new JLabel("Input will appear here");

        JButton okButton = new JButton("OK");
        okButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                String input = textField.getText();
                System.out.println("Input: " + input);

                label.setText(input);
            }
        });

        container.add(textField);
        container.add(okButton);
        container.add(label);

        frame.setVisible(true);
    }
}