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.showInputDialogJDialog基本的に、入力テキストフィールドと[OK]/[キャンセル]ボタンを使用してをインスタンス化します。

この「既成の」ライブラリメソッドが気に入らない場合は、独自の方法をJDialog使用する必要があります。モジュール式で汎用的なものにすることで、将来同じツールが必要になった場合に、最初から作成する必要がなくなります。コピーペースト。外部フレームなし
でダイアログを表示できることに注意してください(ツールチップなど、ウィンドウよりも邪魔にならないものを探している場合)。http://www.stupidjavatricks.com/?p=4を参照してください。

他のオプションは表示されません。

于 2012-10-04T20:48:01.230 に答える