2

我有一个按钮,单击时我希望它加载一个文本字段(如弹出窗口)。这可能吗?

我调查过

this.setVisible(false);
new className().setVisible(true);

但这意味着我需要一个新的 JFrame。我并不反对这个想法——我只是想问是否有更好的方法来做到这一点。如果可能的话,我希望它只加载一个文本字段而不是它周围的框架。

我刚刚按照下面的建议创建了 JOptionPane - 但我仍然遇到问题。弹出窗口出现,但框中不包含任何内容。

当鼠标点击类 1 时:

JOptionPane.showMessageDialog(this, MetaData.getTags());

2 类(我知道这不是抛出异常的最佳方法。这只是一个粗略的程序)。为感兴趣的人使用元数据提取器。

public String getTags() {
        try {
            Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);

            for (Directory directory : metadata.getDirectories()) {
                for (Tag allTags : directory.getTags()) {
                    System.out.println("MetaData Class: " + allTags);
                }
            }
        } catch (ImageProcessingException ex) {
            Logger.getLogger(MetaData.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(MetaData.class.getName()).log(Level.SEVERE, null, ex);
        }
        return allTags;
    }
4

1 回答 1

2

如果您想通过弹出窗口获取用户输入,您可以使用JOptionPane.showInputDialog. 它本质上将JDialog使用输入文本字段和确定/取消按钮来实例化 a。

如果您不喜欢这种“预制”库方法,则必须自己动手JDialog:使其模块化和通用化,这样如果将来您需要相同的工具,您就不必从头开始制作它或复制粘贴。
请注意,您可以在没有外部框架的情况下使用对话框(如果您正在寻找比窗口更少干扰的东西,例如工具提示)。请参阅http://www.stupidjavatricks.com/?p=4

我没有看到其他选择。

于 2012-10-04T20:48:01.230 回答