public class MyWindow extends JFrame {
JButton botonCreate = new JButton("Open son windows");
public void doSomething(){
botonCreate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog vce = new JDialog(this);
}
});
}
}
想法是在孩子可見時阻止JFrame父級(JDialog)。編譯器錯誤將此指針傳遞給構造函數?
JDialog的構造函數的參數必須是包含類「MyWindow」,但是作用域的問題是ActionListener,並且這會生成以下錯誤。
我該如何解決這個問題?
錯誤消息:
找到的JDialog() 構造的JDialog(java.awt.Frame中)沒有合適的構造方法是不適用 (實際參數不能由方法調用轉換爲java.awt.Frame中轉換) 構造的JDialog(java.awt.Dialog中)是不適用 (實際參數不能由方法調用 轉換)
請注意,擴展'JFrame'通常是一個非常糟糕的主意 - 你很難創建一種新的JFrame,而是想要使用現有的JFrame。這裏的正確模式是組合而非繼承 - 這也可以完全避免這個問題。 – Voo