【问题标题】:JOptionPane with a JTextArea instead of a text field?带有 JTextArea 而不是文本字段的 JOptionPane?
【发布时间】:2015-03-25 16:23:34
【问题描述】:

我需要从弹出式 JOptionPane (或其他一些弹出式窗口,但我的大部分搜索都将我定向到那里,这就是我卡住的地方......)中获取多行输入。我被困在使用中

JOptionPane.showInputDialog(null, new JTextArea(20,20));

但我只想将 20x20 区域读取为字符串并且不显示文本字段。 我认为必须有某种方法可以做到这一点,但其他类型的对话框似乎只返回一个 int ......它不一定是 JOptionPane,只要它是我的主 GUI 的单独弹出窗口,可以读回要读取的字符串。

【问题讨论】:

    标签: java swing user-interface jtextarea joptionpane


    【解决方案1】:

    在传递给JOptionPane 之前保留对JTextArea 的引用,JOptionPane 会告诉您用户做了什么(他们如何关闭对话框)并且根据结果,您可能想要做不同的事情

    JTextArea ta = new JTextArea(20, 20);
    switch (JOptionPane.showConfirmDialog(null, new JScrollPane(ta))) {
        case JOptionPane.OK_OPTION:
            System.out.println(ta.getText());
            break;
    }
    

    详情请见How to Make Dialogs

    【讨论】:

    • JOptionPane.showInputDialog(null, ta) 我怀疑最好是JOptionPane.showInputDialog(null, new JScrollPane(ta))。在我看来,添加到 GUI 的文本区域中间没有滚动窗格,看起来很奇怪。
    • @AndrewThompson 同意,如果没有 JScrollPaneJTextArea 将能够增长,因为它需要更多空间
    • 谢谢大家!我唯一看到的是我在行 case JOptionPane.OK_OPTION: 上收到“类型不匹配:无法从 int 转换为字符串”
    • 这看起来很不错,只是现在让它真正起作用。 GUI 绝对不是我的菜。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 2021-03-24
    • 2014-07-20
    相关资源
    最近更新 更多