使用Java将代码分成类(特定于GUI)

时间:2015-11-16 11:46:41

标签: java class menu actionlistener

在示例程序中,我有一个放置的类:

  • Jarame内部的JPanel上的GUI组件。
  • 方法makeMenu创建菜单栏
  • makeMenu方法中的ActionListener,用于在调用时更改JPanels背景颜色。
  • 主要方法。

public class GUI extends JFrame {

     private JPanel jPanelRight;
     private JPanel jPanelLeft;
     JMenuBar menuBar;
     JMenu file, help;
     JMenuItem changeColor;

    public GUI() {
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       this.setJMenuBar(makeMenu()); // call constructor to create the menu
       this.setSize(800, 600); // set frame size
       this.setVisible(true); // display frame
       this.setTitle("understanding objects");
       setLayout(new BorderLayout()); // layout manager

    jPanelLeft = new JPanel(); //left jpanel
    jPanelLeft.setPreferredSize(new Dimension(400, 800));  // to set the size of the left panel
    jPanelLeft.setBackground(Color.blue);

    jPanelRight = new JPanel(); //right jpanel
    jPanelRight.setPreferredSize(new Dimension(400, 600));  // to set the size of the right panel
    jPanelRight.setBackground(Color.green);

    this.add(jPanelLeft, BorderLayout.WEST); //add jpanel to the left side of the frame
    this.add(jPanelRight, BorderLayout.EAST); //add jpanel to the right side of the frame

    }//end constructor 

    public JMenuBar makeMenu() {

    menuBar = new JMenuBar(); //menu bar
    file = new JMenu("File"); //menu item
    menuBar.add(file);
    help = new JMenu("Help"); //menu item
    menuBar.add(help);


    changeColor = new JMenuItem("Change Colour"); //sub menu item
    changeColor.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            jPanelRight.setBackground(Color.red);
        }
    });
    file.add(changeColor);

    return menuBar;
     }

      public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
        public void run() {

            new GUI();

          }

       });

     } // end 
    }//end class

我正在尝试将代码分成3或4个类。

  • GUI类
  • ActionListener类
  • MakeMenu class
  • 主类(运行程序)

一直存在的问题是,当我分离代码时,我只能使用System.out.println()进行更改;并且无法更改GUI,即我可以打印出jPanelRight现在是红色但实际上无法将jPanelRight更改为红色。

我可能会以错误的方式解决这个问题。 使用不同类创建其菜单的GUI和另一个控制GUI菜单操作的不同类。

0 个答案:

没有答案