groovy 调整showInputDialog文本区域大小?

bvuwiixz  于 2022-11-01  发布在  其他
关注(0)|答案(3)|浏览(227)

我正在使用Groovy / Java和Swing,并试图构建JOptionPaneshowInputDialog框架,该框架弹出给用户,并接受用户在文本字段中的输入。
是的,它很简单。但是我的问题是,showInputDialog文本区域在默认情况下相当小,为了可用性,我希望它更大。
有人知道如何调整textarea的大小吗?
示例:这是我得到的small

但这就是我想要的big

tyky79it

tyky79it1#

您可能成功地使用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,那么这段代码应该可以工作。
(You可能要做一些实验才能达到你想要的大小/布局)

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

xe55xuns

xe55xuns2#

基于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());
    }
i86rm4rw

i86rm4rw3#

  • JOptionPane.showInputDialog* 内的文本被视为文本字段。可以通过使用 UIManager.put 方法来解决此问题。
UIManager.put("TextField.font", 
         new FontUIResource(new Font("SansSerif",Font.BOLD,21)));

更改字母的字体也会使TextField明显变长,因此如果要避免这种情况,可以执行以下操作:

UIManager.put("TextField.margin", 
             new InsetsUIResource(0,0,0,-100));

相关问题