2011-07-15 84 views
0

如何添加JButton到我的Canvas如何将JButton添加到Canvas()?或者如何将JButton添加到Panel()并将Panel()背景设置为透明?

public class mywindow extends Window 
{ 
    private static final Canvas canvas = new Canvas(); 
    private JButton button; 

    public mywindow 
    { 
     super(new Frame()); 
     button = new JButton("close"); 
     setLayout (new BorderLayout()); 

     //Step 1 - failed 
     add("North", canvas); 
     canvas.setSize(300,300); 
     canvas.setLocation(0,0); 

     // button = new JButton(my, "close"); will not work 
     // How can I add the button to the canvas? 

     //Step 2 - works, but it gets the background color, instead of real transparency. 
     //JPanel p = new JPanel(); p.setOpaque(false); 
     //p.setSize(300,300); p.setLocation(0,0); 
     //add("North", p); 
     //p.add("Left", button); 
    } 
} 
+3

你为什么要把AWT和Swing混合?为什么不简单地坚持一个全Swing GUI?而且为什么你不必要地将类字段静态化? –

回答

6

请不要混合AWTSwing。今天,需要Swing代码JPanel。当然,可以将AWT与Swing混合使用,但是可能会将意外输出到GUI。对于透明度,您必须查看How to Create Translucent and Shaped Windows并在此处搜索示例。

编辑:最好的和更好的输出到GUI检查,LayoutManagers如何工作。

+0

你给的透明链接。它会与此一起工作吗? #java -version Java版本“1.6.0_22” OpenJDK运行时环境(IcedTea6 1.10.2)(fedora-58.1.10.2.fc15-i386) OpenJDK服务器虚拟机(内部版本20.0-b11,混合模式) – YumYumYum

+0

@ 89899.3K这真的是操作系统和OpenJDK相关的问题,很难说,我无法给你答案,因为我只有Win和Solaris管理员,我发布的链接是关于Java SE Release 6 Update 10 API的教程, – mKorbel