大家好我在java中做了一個swing應用程序,但問題是我如何能夠在java中實現透明框架。在java swing中創建一個透明的JFrame
我想在附加圖像中製作用戶界面設計,但是probem是框架不透明,所以如果該層上沒有組件,它將顯示默認顏色。
像右側我想將此框架作爲透明的頂部自由和底部自由部分,
我用AWTUtilities,但它不是爲我工作。
我怎麼能做到這一點,PLZ回覆,
也給我一個提示通過標題欄
感謝拖動窗口,在未裝飾的窗口提前
大家好我在java中做了一個swing應用程序,但問題是我如何能夠在java中實現透明框架。在java swing中創建一個透明的JFrame
我想在附加圖像中製作用戶界面設計,但是probem是框架不透明,所以如果該層上沒有組件,它將顯示默認顏色。
像右側我想將此框架作爲透明的頂部自由和底部自由部分,
我用AWTUtilities,但它不是爲我工作。
我怎麼能做到這一點,PLZ回覆,
也給我一個提示通過標題欄
感謝拖動窗口,在未裝飾的窗口提前
透明背景分量
public class TransparentBackground extends Jcomponent {
private JFrame frame;
private Image background;
public TransparentBackground(JFrame frame) {
this.frame = frame;
updateBackground();
}
public void updateBackground() {
try {
Robot rbt = new Robot();
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension dim = tk.getScreenSize();
background = rbt.createScreenCapture(
new Rectangle(0,0,(int)dim.getWidth(),
(int)dim.getHeight()));
} catch (Exception ex) {
p(ex.toString());
ex.printStackTrace();
}
}
public void paintComponent(Graphics g) {
Point pos = this.getLocationOnScreen();
Point offset = new Point(-pos.x,-pos.y);
g.drawImage(background,offset.x,offset.y,null);
}
}
你可以用一個簡單的main()方法來運行這個方法,將一些組件放到面板上並放到一個框架中:
public static void main(String[] args) {
JFrame frame = new JFrame("Transparent Window");
TransparentBackground bg = new TransparentBackground(frame);
bg.setLayout(new BorderLayout());
JButton button = new JButton("This is a button");
bg.add("North",button);
JLabel label = new JLabel("This is a label");
bg.add("South",label);
frame.getContentPane().add("Center",bg);
frame.pack();
frame.setSize(150,100);
frame.show();
}
不是一個有效的答案,因爲它耗費成本 –
sry但投票 –
的可能重複[如何使JFrame的透明?](http://stackoverflow.com/questions/6660908/how-to-make-jframe-transparent) –
我真的真的真的想知道如何你是爲了這個設計而來的,我一直試圖在很長一段時間內找到這種性質的東西,但現在仍然無濟於事,我希望你仍然使用stackoverflow,請告訴我,如果你沒有問題的話。我想知道你是如何設計JFrame的,看起來像這樣,以及你如何定製你的按鈕,Graphics是我每天都在Java上認真思考的原因。 –