あなたはJLabelの上の画像を追加することができます。イメージの上に他のコンポーネントを追加する場合は、イメージをJPanelに追加する必要があります。この方法で、レイアウトの制御ができます。
はJPanelのを拡張し、リーダーとしてのBorderLayoutにあなたの使って、JDialogのレイアウトを設定しpaintComponent
public class ImageJPanel extends JPanel {
public ImageJPanel() {
try {
myImage = ImageIO.read(new File("singer.jpg"));
} catch (IOException ex) {
System.out.println("No image! " + ex.getMessage());
}
}
@Override
public void paintComponent(Graphics g) {
g.drawImage(myImage, 0, 0, null);
}
private BufferedImage myImage;}
を含んでクラスを作成します。このソリューションのために必要な手順の数があります。
別のJPanel pを追加します。画像を表示するには不透明にしてください。p.setOpaque(false);
とJTextFields、JLabelsなどをコンテンツパネルに追加してください。
ボーダーレイアウトの中央にImageJPanelインスタンスを追加します。ここで
はJDialogのを拡張テスタークラスのサンプルコンストラクタです:
public Tester() {
setLayout(new BorderLayout());
JPanel myImagePanel = new ImageJPanel();
add(myImagePanel);
JPanel workPanel = new JPanel();
workPanel.setOpaque(false);
workPanel.add(new JLabel("a label"));
workPanel.add(new JTextField(10));
myImagePanel.add(workPanel);
pack();
}
ありがとうございます...しかし、私のTextAreaを不透明な背景にする方法を知っていますか?そのプロパティでその背景のコードをカスタムにしようとしています。これはjTextArea1.setBackground();のメソッドです。 – iamanapprentice