12

JPanelに画像を表示するswingアプリケーションがあります。アプリが画像を生成できない場合は、前の画像を JPanel から削除し、JTextField とメッセージに置き換えます。テキスト フィールドを追加できますが、それ自体が JPanel のサブクラスである前のコンテンツの上に描画されます。ここに私が持っているものがあります:

private void displayMessage(String message) {
  JTextField tf = new JTextField(message);
  cdPanel.removeAll();
  cdPanel.add(tf, BorderLayout.NORTH);//tried lots of variations, inc. no layout    
  cdPanel.validate();
}

cdPanel を完全に再描画するにはどうすればよいですか?

4

2 に答える 2

3

予測できないレイテンシーに対処しているため、ここSwingWorkerに示すように、 a を使用してバックグラウンドで読み込みを行います。この例では、ラベルを画像のサイズに合わせてサイズ変更していますが、ここに示すように、固定サイズのグリッドを使用して画像をスケーリングすることもできます。pack()

于 2013-08-01T18:06:47.473 に答える