JDialog
で選択した後、ボックスに画像を表示する基本的なスイングプログラムを作成しましたJFileChooser
。JScrollPane
ダイアログボックスのJLabel
内側と、ペイン内のアイコンとして画像が追加されている画像を使用しました。
以下は、ダイアログボックスとその内容を作成するために使用したコードです。オブジェクトは、単純な新しい呼び出しで既に初期化されています。
jDialog1.setTitle("Image");
jDialog1.setModal(true);
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jScrollPane2.setViewportView(jLabel1);
GUIの構築にはNetbeansが使用されています。
以下は、画像を読み込んで表示するために使用したコードです。
int rval = jFileChooser1.showDialog(this, "Show");
File f = jFileChooser1.getSelectedFile();
jDialog1.setTitle(jDialog1.getTitle() + " : " + f.getName());
try {
BufferedImage bf = ImageIO.read(f);
jLabel1.setIcon(new ImageIcon(bf));
}
catch (IOException ioe) {
}
jDialog1.setLocationRelativeTo(null);
jDialog1.setVisible(true);
jDialog1.pack();
画像を読み込んで表示しますが、問題は
ダイアログボックスが左上隅に最小化された形式で表示され、画像を表示するにはその隅をドラッグする必要があります。同じ画像を含みます。
ダイアログボックスが完全に拡張され、画像が完全に表示されるずっと前に、スクロールペインの水平スクロールが消えます。垂直スクロールバーは正常に機能しますが。
両方のサイズと優先サイズを設定しようJDialog
としJLabel
ましたが、問題は解決しません。
よろしくお願いします!
注:水平スクロールバーの問題はpack()
、ダイアログボックスのメソッドを使用して解決されますが、最小化されたダイアログボックスは引き続き表示されます。また、画面中央にもダイアログボックスが表示されるようになりました。