Java 如何使用JFrame构建模板
我是这个网站的新手,我是软件专业的学生和开发人员。我的问题是如何使用自定义功能扩展默认GUI 如果扩展基本JFrame,按钮actionListener不会响应派生JFrame中的事件,但会响应超类的JFrame事件Java 如何使用JFrame构建模板,java,user-interface,jframe,Java,User Interface,Jframe,我是这个网站的新手,我是软件专业的学生和开发人员。我的问题是如何使用自定义功能扩展默认GUI 如果扩展基本JFrame,按钮actionListener不会响应派生JFrame中的事件,但会响应超类的JFrame事件 感谢阅读并等待帮助 根据您下面的评论,我修改了我的示例,希望它能回答您的问题 public class TestMain { public static void main(String[] args) throws Exception { MyJFrame
感谢阅读并等待帮助 根据您下面的评论,我修改了我的示例,希望它能回答您的问题
public class TestMain {
public static void main(String[] args) throws Exception {
MyJFrame myFrameHello = new MyJFrame("Hello", 100, 100);
MyJFrame myFrameGoodBye = new MyJFrame("Good Bye", 100, 250);
myFrameHello.setVisible(true);
myFrameGoodBye.setVisible(true);
}
private static class MyJFrame extends JFrame {
public MyJFrame(String labelStr, int x, int y) {
this.labelStr = labelStr;
setDefaultCloseOperation(MyJFrame.EXIT_ON_CLOSE);
label = new JLabel(" ");
getContentPane().add(label, BorderLayout.NORTH);
JButton button = new JButton("Click Me");
button.addActionListener(new MyListener());
getContentPane().add(button);
setBounds(x, y, 0, 0);
pack();
}
private JLabel label;
private String labelStr;
private class MyListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
label.setText(labelStr);
}
}
}
}
如果您有可疑的代码,请发布它-尝试将问题隔离到整个代码的一小部分中。看,很难理解你的问题。你是说当你扩展一个扩展JFrame的类时,你的ActionListener没有工作吗?我不知道是创建接口还是abstrac类或symple类,因为我有一个类a,我希望另一个类B在视觉界面形式上等于A,但每个类的功能性和逻辑变化考虑PropertyChangeListeners和/或使用数据模型可能是一个解决方案,但我解释得不是很好,我再次评论我的问题。好的,你有一个有3个按钮和2个标签的windows JFrame,如果你按1个按钮,一个jlabel显示hello。现在我也想要其他有3个按钮和2个标签的窗口,但是如果你按1个按钮,一个标签不能显示hello Now show ByeI修改了我的示例,希望能更好地回答你的问题。谢谢Howard的帮助,我可以解决我的问题并在源代码中实现