我遇到了麻煩,我的GUI ...想要使用「標籤」的背景圖像,然後有一個重疊的「文本字段」...我使用「標籤」(在擺動控制),所以我可以導入圖像..然後想重疊一個文本字段..但這並不奏效,因爲每次我拖動文本字段..我的佈局被毀了......你能幫助我或建議更好的解決我的問題。Textfield可以重疊在JDialog窗體上的標籤嗎?
我只是想表明,在我的GUI背景圖像的指令..
日Thnx提前:)
我遇到了麻煩,我的GUI ...想要使用「標籤」的背景圖像,然後有一個重疊的「文本字段」...我使用「標籤」(在擺動控制),所以我可以導入圖像..然後想重疊一個文本字段..但這並不奏效,因爲每次我拖動文本字段..我的佈局被毀了......你能幫助我或建議更好的解決我的問題。Textfield可以重疊在JDialog窗體上的標籤嗎?
我只是想表明,在我的GUI背景圖像的指令..
日Thnx提前:)
您是否嘗試過使用JLayeredPane
?從the Swing tutorial,它看起來像你的情況下所需的組件。
您可以在一個JLabel添加圖片。如果您想要在圖像頂部添加其他組件,您必須將圖像添加到JPanel。這樣你將有佈局控制。有一些參與該解決方案的步驟:
創建擴展JPanel幷包括閱讀器和和的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;}
設置你的JDialog到BorderLayout的佈局的類。
添加另一個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 2011-01-31 15:50:03