伊莉討論區
標題:
透明視窗內的不透明效果
[打印本頁]
作者:
o.g.c
時間:
2013-5-18 10:40 AM
標題:
透明視窗內的不透明效果
本帖最後由 o.g.c 於 2013-5-18 12:36 PM 編輯
我建置了一個透明視窗
想在裡面畫點東西
透過Graphics可以畫上去
但是卻發現
筆跡也都是透明的
效果圖如下
[attach]90576203[/attach]
有甚麼辦法可以把它變不透明嗎
但是前提要視窗透明的
就是在透明視窗上顯示不透明的Graphisc
建立視窗的程式碼
private static void createFrame() {
frame = new JFrame("ppt");
frame.setUndecorated(true);//全螢幕
com.sun.awt.AWTUtilities.setWindowOpaque(frame, false);
frame.setSize(screenSize);//設定size
frame.setAlwaysOnTop(true);//置頂
canvas = new JPanel() ;
canvas.setOpaque(false);
canvas.setPreferredSize(screenSize);
frame.add(canvas);
frame.pack();
frame.setVisible(true);
dbImage = canvas.createImage(screenSize.width, screenSize.height);
dbGraphics = (Graphics2D) dbImage.getGraphics();
}
複製代碼
設置Graphics的程式碼
private static void drawscreen() {
dbGraphics.setColor(Color.RED);//畫筆顏色
dbGraphics.setStroke(new BasicStroke(4.0f));//畫筆粗細
// dbGraphics.setComposite(java.awt.AlphaComposite.getInstance(
// java.awt.AlphaComposite.SRC_ATOP, 1f));
}
複製代碼
作者:
ddttdtxb
時間:
2013-5-18 11:27 AM
提供一個我在其它程式語言(flash)使用的方式,樓主試試可不可行。
加上去的東西本身是「不透明的」,Alpha 最大值。
但是背景填上「透明色」,那種顏色不重要,重要是顏色的 Alpha 是 0。
作者:
o.g.c
時間:
2013-5-18 12:28 PM
ddttdtxb 發表於 2013-5-18 11:27 AM
提供一個我在其它程式語言(flash)使用的方式,樓主試試可不可行。
加上去的東西本身是「不透明的」,Alpha ...
試過了不過沒辦法
而且這樣的話我圖片上沒辦法顯示筆跡
因為我是要在透明的視窗內顯示非透明的Graphics
晚點會補上程式碼的
歡迎光臨 伊莉討論區 (http://www40.eyny.com/)
Powered by Discuz!