【问题标题】:resize showInputDialog textarea?调整 showInputDialog 文本区域的大小?
【发布时间】:2017-07-07 12:29:01
【问题描述】:

我正在使用带有 Swing 的 Groovy / Java,并尝试构建 JOptionPane showInputDialog 框架,它会弹出给用户,并在文本字段中接受用户输入。

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

有人知道如何调整文本区域的大小吗?

示例: 这就是我得到的 small

但这就是我想要的 big

【问题讨论】:

  • 注意:您似乎可以互换使用术语 textfield 和 textarea,但它们是完全独立的组件。第一个用于单行文本,第二个用于多行文本。请更谨慎地使用术语,并edit此问题以删除与问题无关的所有引用。

标签: java swing groovy jframe joptionpane


【解决方案1】:

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 可能不起作用,因为它已经有一个默认输入行。)

【讨论】:

【解决方案2】:

以 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());
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 2012-07-09
    • 1970-01-01
    相关资源
    最近更新 更多