从另一个类添加Swing组件

约书亚·马丁(Joshua Martin)

我正在学习Java,并且正在尝试从另一个类向框架添加菜单栏(将代码分成多个类以更好地组织程序)。

这是我的代码示例:

public class MainApp {

public static void main(String[] args) {
    // Create window
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setSize(600, 400);

    // Create main panel
    JPanel content = new JPanel();
    content.setLayout(new BorderLayout());
    frame.add(content);

    //Create menu bar
    menubar menu = new menubar();
    content.add(menu.menuBar(), BorderLayout.NORTH);
            //Other stuff...

} // Ends main method
} // Ends MainApp class

和菜单栏类:

public class menubar {
public static void menuBar(){
    JMenuBar menu = new JMenuBar();
    JMenu file = new JMenu("File");
        JMenuItem clear = new JMenuItem("New");
        JMenuItem exit = new JMenuItem("Exit");
    JMenu help = new JMenu("Help");
        JMenuItem about = new JMenuItem("About");
        JMenuItem instructions = new JMenuItem("Instructions");
} // Ends method menuBar
} // Ends class menubar

我使用eclipse,并在一行中:

content.add(menu.menuBar(), BorderLayout.NORTH);

带下划线的是“添加”,因此我无法编译代码。

我一直在寻找解决此问题的方法,据我所知这应该可行。

任何帮助表示赞赏。

谢谢

乔希

兰尼姆

请注意,您的menuBar()方法是类型,因此没有返回任何值,而您使用的content(JPanel)add()方法需要两个参数,它们是(JComponent类型[注意,JMenuBar是JComponent的子类],int [供布点用途]

content.add(menu.menuBar(), BorderLayout.NORTH);

代码的快速修复如下:

public class menubar {
public static JMenuBar menuBar(){
    JMenuBar menu = new JMenuBar();
    JMenu file = new JMenu("File");
        JMenuItem clear = new JMenuItem("New");
        JMenuItem exit = new JMenuItem("Exit");
    JMenu help = new JMenu("Help");
        JMenuItem about = new JMenuItem("About");
        JMenuItem instructions = new JMenuItem("Instructions");
    return menu;
} // Ends method menuBar
} // Ends class menubar

我的建议是在使用Java处理GUI时使用继承的概念(将menubar类扩展到JMenuBar,以便您的类可以像JMenuBar一样工作),而不是依赖于组合的概念。您还可以按照上述文章来设置JMenuBar:

frame.setJMenuBar(menu.menuBar());

如果您是Java编程的新手,则需要开始练习Java编码标准,尤其是对类和方法的正确命名。类名称的首字母应大写,而方法名称应至少包含一个动词。:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从另一个类添加Swing组件

来自分类Dev

Java Swing:访问另一个类的面板组件

来自分类Dev

Java Swing:访问另一个类的面板组件

来自分类Dev

如何将Swing组件添加到另一个JFrame?

来自分类Dev

在单独的类中将多个组件添加到另一个类中的JFrame

来自分类Dev

在另一个类中添加组件时,JPanel不会更新

来自分类Dev

在另一个类中添加组件时,JPanel不会更新

来自分类Dev

Angular 2+ 添加或删除属于另一个组件的元素的类

来自分类Dev

动态添加另一个组件

来自分类Dev

在react中动态添加另一个组件

来自分类Dev

如果从另一个类运行一个类,如何修复组件显示?

来自分类Dev

在另一个类的窗体上添加QGraphicsView

来自分类Dev

如何从另一个类添加对象

来自分类Dev

Swift 从另一个类添加子视图

来自分类Dev

jQuery在延迟后添加一个类,然后延迟另一个类

来自分类Dev

在另一个类中添加一个或多个类的实例

来自分类Dev

将另一个类的项目添加到另一个类的属性。目标C

来自分类Dev

将另一个类的项目添加到另一个类的属性。物镜

来自分类Dev

删除一个子类并一次添加另一个类

来自分类Dev

绘制另一个组件

来自分类Dev

参考另一个组件

来自分类Dev

React Native将Text组件添加到另一个Text组件中

来自分类Dev

BorderLayout-添加另一个组件后,子组件仍然可见

来自分类Dev

React Native将Text组件添加到另一个Text组件中

来自分类Dev

使用 React 从另一个组件添加到组件

来自分类Dev

单击按钮将组件添加到另一个组件

来自分类Dev

添加一个或另一个类的最简单方法

来自分类Dev

如何重写将另一个类扩展为功能组件的React类?

来自分类Dev

在React中将类名从一个组件传递到另一个组件

Related 相关文章

  1. 1

    从另一个类添加Swing组件

  2. 2

    Java Swing:访问另一个类的面板组件

  3. 3

    Java Swing:访问另一个类的面板组件

  4. 4

    如何将Swing组件添加到另一个JFrame?

  5. 5

    在单独的类中将多个组件添加到另一个类中的JFrame

  6. 6

    在另一个类中添加组件时,JPanel不会更新

  7. 7

    在另一个类中添加组件时,JPanel不会更新

  8. 8

    Angular 2+ 添加或删除属于另一个组件的元素的类

  9. 9

    动态添加另一个组件

  10. 10

    在react中动态添加另一个组件

  11. 11

    如果从另一个类运行一个类,如何修复组件显示?

  12. 12

    在另一个类的窗体上添加QGraphicsView

  13. 13

    如何从另一个类添加对象

  14. 14

    Swift 从另一个类添加子视图

  15. 15

    jQuery在延迟后添加一个类,然后延迟另一个类

  16. 16

    在另一个类中添加一个或多个类的实例

  17. 17

    将另一个类的项目添加到另一个类的属性。目标C

  18. 18

    将另一个类的项目添加到另一个类的属性。物镜

  19. 19

    删除一个子类并一次添加另一个类

  20. 20

    绘制另一个组件

  21. 21

    参考另一个组件

  22. 22

    React Native将Text组件添加到另一个Text组件中

  23. 23

    BorderLayout-添加另一个组件后,子组件仍然可见

  24. 24

    React Native将Text组件添加到另一个Text组件中

  25. 25

    使用 React 从另一个组件添加到组件

  26. 26

    单击按钮将组件添加到另一个组件

  27. 27

    添加一个或另一个类的最简单方法

  28. 28

    如何重写将另一个类扩展为功能组件的React类?

  29. 29

    在React中将类名从一个组件传递到另一个组件

热门标签

归档