我正在使用Groovy / Java和Swing,并试图构建JOptionPaneshowInputDialog框架,该框架弹出给用户,并接受用户在文本字段中的输入。是的,它很简单。但是我的问题是,showInputDialog文本区域在默认情况下相当小,为了可用性,我希望它更大。有人知道如何调整textarea的大小吗?示例:这是我得到的small
JOptionPane
showInputDialog
但这就是我想要的big
tyky79it1#
您可能成功地使用Sergiy Medvynskyy对this问题的回答,或者至少以某种方式使用它;
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可能不起作用,因为它已经有了默认的输入行。)
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()); }
i86rm4rw3#
UIManager.put("TextField.font", new FontUIResource(new Font("SansSerif",Font.BOLD,21)));
更改字母的字体也会使TextField明显变长,因此如果要避免这种情况,可以执行以下操作:
UIManager.put("TextField.margin", new InsetsUIResource(0,0,0,-100));
3条答案
按热度按时间tyky79it1#
您可能成功地使用Sergiy Medvynskyy对this问题的回答,或者至少以某种方式使用它;
由于
JOptionPane
接受一个JLabel作为参数,因此可以尝试调整该参数的大小,然后将其传递出去。编辑:
假设您使用的是Swing,那么这段代码应该可以工作。
(You可能要做一些实验才能达到你想要的大小/布局)
结果应该与此类似。(当然,您也可以更改对话框类型,尽管
showInputDialog
可能不起作用,因为它已经有了默认的输入行。)xe55xuns2#
基于AscendedKittens的答案,这显示了您实际上如何获取输入的数据。
i86rm4rw3#
更改字母的字体也会使TextField明显变长,因此如果要避免这种情况,可以执行以下操作: