2011-04-24 125 views
1

我有一個畫布,畫布內部有一個攝像頭。在視頻圖像之上,我想放置一個「按鈕」並附加一個事件,這樣我就可以控制全屏並將其最小化。 但是這種方法給出錯誤,如何解決?如何在畫布中添加按鈕?

public static void main(String[] args) 
    { 

     JFrame frame = new JFrame("Overlay"); 
     frame.setBackground(Color.RED); 

     // Canvas, to have a video and on top a button  
     final Canvas canvas = new Canvas(); 
     Button button = new Button(canvas); // ERROR 
     button.setBounds(10,10, 100, 40); 
     canvas.setPreferredSize(new Dimension(200, 200));  

     // Layout 
     JPanel content = new JPanel(new GridLayout(2,2)); 
     content.add(canvas); 
     content.add(new JButton("test")); // for empty cell 

     // Show 
     frame.add(content);       
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setVisible(true); 

     // Third party tools to capture the webcam, and plugin to our canvas 
     final Video video = player.getElementByName("gl"); 
     XOverlay.wrap(video).setWindowID(canvas); 
    } 
+1

該錯誤消息是相當說明。這個構造函數不存在。你必須先創建按鈕,然後將其添加到容器(btw畫布不是容器)。而你將swing和awt組件混合在一起。要非常小心你在做什麼。 – Howard 2011-04-24 07:25:18

回答

1

因爲有Button類,它canvas作爲argument.You可以添加自己的按鈕,同樣的JPanel在其中添加你的畫布沒有構造它提供了錯誤。

+1

添加到jPanel中將按鈕從Overlay分離。所以視頻是分開的,按鈕是分開的。我有一個全屏視頻運行,我需要在右上角的按鈕。 – YumYumYum 2011-04-24 07:44:42

1
canvas.add(button); 

canvas.add(button, 55, 30);