Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JFrame构建模板_Java_User Interface_Jframe - Fatal编程技术网

Java 如何使用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

我是这个网站的新手,我是软件专业的学生和开发人员。我的问题是如何使用自定义功能扩展默认GUI

如果扩展基本JFrame,按钮actionListener不会响应派生JFrame中的事件,但会响应超类的JFrame事件


感谢阅读并等待帮助

根据您下面的评论,我修改了我的示例,希望它能回答您的问题

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的帮助,我可以解决我的问题并在源代码中实现