我正在创建一个自定义的JDialog类,我想知道如何隐藏我不希望有人改变的所有方法?
作为一个'结果'我只是希望这些方法真的很重要。
E.g。
public class TestDialog extends JDialog {
public void setProgress(int p) {}
}
当有人想要使用此对话框时,他看到的只有:
testDialog.setProgress // suggested from eclipse
更新:如果不清楚,我想隐藏JDialog中的所有方法
答案 0 :(得分:4)
您可以创建一个自己的类,它不是扩展JDialog,而是包含一个。
示例:
public class MyDialog{
private JDialog dia = null;
public MyDialog() {
//init dialog
}
//your methods, ...
public void setXYZ(int a) {
dia.setXYZ(a);
}
}
这样你只需要实现方法,你想要可见。
修改强>
为了更好地理解,请查看不同的设计模式(例如:deligation pattern和adapter pattern)
答案 1 :(得分:2)
您是否考虑过包装课程而不是延长课程?这通常是首选,特别是如果您实际上不想保留大多数现有方法。
例如,请参阅:Avoid extending classes或维基百科上的Delegation pattern。