调整大小showInputDialog textarea?

时间:2017-07-07 12:29:01

标签: java swing groovy jframe joptionpane

我正在使用Swing使用Groovy / Java,并尝试构建弹出给用户的JOptionPane showInputDialog帧,并在文本字段中输入用户输入。

是的,这很简单。但我的问题是showInputDialog文本区域默认非常小,而且为​​了实用性,我希望它更大。

有谁知道如何调整textarea的大小?

实施例: 这就是我得到的 small

但这就是我想要的 big

2 个答案:

答案 0 :(得分:0)

Sergiy Medvynskyythis问题的答案可能会取得成功,或者至少以某种方式使用它;

JLabel label = new JLabel("MESSAGE");
label.setFont(new Font("Arial", Font.BOLD, 18));
JOptionPane.showMessageDialog(null,label,"ERROR",JOptionPane.WARNING_MESSAGE);

由于JOptionPane接受JLabel作为参数,您可以尝试调整一个,然后只是传递它来尝试一下。

修改

假设您正在使用Swing,此代码应该可以使用。
(您可能需要进行一些实验才能达到所需的大小/布局)

        TextField tf = new TextField();
        tf.setFont(new Font("Arial", Font.BOLD, 20));

        JPanel jp = new JPanel(new BorderLayout(0, 0));

        JLabel jl = new JLabel("Example Prompt Message!");
        jl.setFont(new Font("Arial", Font.BOLD, 16));

        jp.add(jl, BorderLayout.NORTH);
        jp.add(tf, BorderLayout.SOUTH);

        JOptionPane.showConfirmDialog(null, jp);

结果应该是类似的东西。 (当然,您也可以更改对话类型,但showInputDialog可能不起作用,因为它已经有一个默认输入行。)

Sample Output with re-sized text field

答案 1 :(得分:0)

建立在AscendedKittens答案的基础上,这显示了您实际上如何取回输入的数据。

    TextField tf = new TextField();
    JPanel panel = new JPanel(new BorderLayout(0, 0));
    tf.setFont(new Font("Arial", Font.BOLD, 24));
    JLabel label = new JLabel("Example Prompt Message!");
    label.setFont(new Font("Arial", Font.BOLD, 16));
    panel.add(label, BorderLayout.NORTH);
    panel.add(tf, BorderLayout.SOUTH);
    int result = JOptionPane.showConfirmDialog(null, panel);
    if(result==JOptionPane.OK_OPTION)
    {
        System.out.println(tf.getText());
    }