-5

これがJPパネルです

public class DisplayBoard {

  public static void main (String[] args) {

    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //The main panel
    JPanel main = new JPanel();
    main.setPreferredSize(new Dimension(600,800) );
    main.setLayout(new BorderLayout());

    //The title panel
    JPanel title = new JPanel();
    title.setPreferredSize(new Dimension(400, 120));
    title.setBackground(Color.YELLOW);
    JLabel test1 = new JLabel("Title goes here");
    title.add(test1);

    //The side bar panel
    JPanel sidebar = new JPanel();
    sidebar.setPreferredSize(new Dimension(200, 800));
    sidebar.add(AddSubtract);
    sidebar.setBackground(Color.GREEN);
    JLabel test2 = new JLabel("Sidebar goes here");
    sidebar.add(test2);

    //The panel that displays all the cards
    JPanel cardBoard = new JPanel();
    cardBoard.setPreferredSize(new Dimension(400,640) );

    //adding panels to the main panel
    main.add(cardBoard, BorderLayout.CENTER);
    main.add(title, BorderLayout.NORTH);
    main.add(sidebar, BorderLayout.WEST);

    frame.setContentPane(main);
    frame.pack();
    frame.setVisible(true);

  }
}

このクラスをサイドバーパネルに追加したい

public class AddSubtract {

int Number = 0;
private JFrame Frame = new JFrame("Math");
private JPanel ContentPane = new JPanel();
private JButton Button1 = new JButton("Add");
private JButton Button2 = new JButton("Subtract");
private JLabel Num = new JLabel ("Number: " + Integer.toString (Number));

public AddSubtract() {

    Frame.setContentPane(ContentPane);
    ContentPane.add(Button1);
    ContentPane.add(Button2);
    ContentPane.add(Num);
    Button1.addActionListener(new Adding());
    Button2.addActionListener(new Subtracting());
}

public class Adding implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        Number++;
        Num.setText ("Number: " + Integer.toString (Number));
    }
}

public class Subtracting implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        Number--;
        Num.setText ("Number: " + Integer.toString (Number));
    }
}

public void launchFrame(){
    Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Frame.pack();
    Frame.setVisible(true);
}

public static void main(String args[]){
    AddSubtract Test = new AddSubtract();
    Test.launchFrame();
    }
}

誰かが私にこれを行う方法を説明できますか? これはうまくいかない気がしますが、本当にその方法を学びたいです。

4

1 に答える 1

2

これは間違いなく機能しません。手始めに、2つのmain()方法があります。次に、フレームにクラスを追加する場合は、から拡張する必要がありますJComponent。基本的に、コードは次のようになります。

public class MainFrame extends JFrame {
    public MainFrame() {
        this.add(new MainPanel())
        //insert all settings here.
    }
}

public class MainPanel extends JPanel {
    public MainPanel() {
        this.add(new AddSubtract());
        this.add(/*more panels*/)
    }
}

public class AddSubtract extends JPanel {
    public AddSubtract() {
        //add buttons and stuff here
    }
}

変数は大文字で始まりません。

編集:そして、JFrameがある場合は、通常、main()1行だけのメソッドを使用するのが最適です。

public static void main(String[] args) {
    new MainFrame();
}

コンストラクターでの設定と構成を設定するだけJFrameです。

于 2012-12-17T14:57:31.730 に答える