J按钮在另一个JPanel中的JPanel



是否可以将带有JButtons的JPanel添加到Split JPanel?现在,我在JFrame中添加了带有JButtons的JPanel,但我希望它与其他JPanel一起出现在JPanel上。当我尝试这样做时,我会得到一个完全空白的带有分隔符的JPanel。

______________________________________________________________________________
public class Panel extends JPanel implements Runnable, ActionListener {
public Panel(){
    JFrame frame = new JFrame();
        ctsMenu = new JPanel(new GridLayout(2,2));
        ctsMenu.setPreferredSize(new Dimension(500,500));

                for (int iRows = 0; iRows < 2 ; iRows++){
                for (int iColumns = 0; iColumns < 2; iColumns++){
                    sGrid[iRows][iColumns] = new JButton ("("+iRows+","+iColumns+")");
                    ctsMenu.add(sGrid[iRows][iColumns]);
                    sGrid[iRows][iColumns].addActionListener(this);
                panel.add(ctsMenu);
                }
            }
            sGrid[0][0].setText("A");
            sGrid[0][1].setText("B");
            sGrid[1][0].setText("C");
            sGrid[1][1].setText("D");
            frame.setContentPane(panel);
            frame.pack();
            frame.setVisible(true);
}}
____________________________________________________________________
public MainFrame()
    {
            setTitle( "Split Pane Application" );
            setBackground( Color.GREEN );
            JPanel topPanel = new JPanel();
            topPanel.setLayout( new BorderLayout() );
            getContentPane().add( topPanel );

            createPanel1();
            createPanel2();
            createPanel3();
            createPanel4();

            splitPaneV = new JSplitPane( JSplitPane.VERTICAL_SPLIT );
            topPanel.add( splitPaneV, BorderLayout.CENTER );
            splitPaneV.setDividerLocation(300);
            splitPaneV.setLeftComponent( gamePanel);
            //  gamePanel.addKeyListener(new KeyListener());
            gamePanel.setFocusable(true);
            gamePanel.requestFocusInWindow();
            splitPaneV.setRightComponent( panel3 );
        }
    }
    public void createPanel1(){
    // deleted to take up less space
    }
    public void createPanel2(){
    // deleted to take up less space
    }
    public void createPanel3(){
    panel3 = new Panel();   
    }
    public void createPanel4(){
        //deleted to take up less space
    }
}

您询问:

是否可以将带有JButtons的JPanel添加到Split JPanel?

是的,这样做是绝对可能的。这与我们一直在做的事情类似:

import javax.swing.*;
public class SplitPaneEg {
   private static void createAndShowGui() {
      JPanel panel1 = new JPanel();
      panel1.setBorder(BorderFactory.createTitledBorder("Panel 1"));
      panel1.add(new JButton("Button 1"));
      panel1.add(new JButton("Button 2"));
      JPanel panel2 = new JPanel();
      panel2.setBorder(BorderFactory.createTitledBorder("Panel 2"));
      panel2.add(new JButton("Button 1"));
      panel2.add(new JButton("Button 2"));
      JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, panel1,
            panel2);
      JFrame frame = new JFrame("Split Pane Example");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.getContentPane().add(splitPane);
      frame.pack();
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
   }
   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            createAndShowGui();
         }
      });
   }
}

您所在的州:

现在,我在JFrame中添加了带有JButtons的JPanel,但我希望它与其他JPanel一起出现在JPanel上。当我尝试这样做时,我会得到一个完全空白的带有分隔符的JPanel。

然后你的代码中有一个错误,但不幸的是,根据你发布的代码,我怀疑我们中的任何人都不能做更多的猜测。如果你需要更具体的帮助,那么你会想要发布一个小的可运行的例子来证明你的问题,一个ssce。

相关内容

  • 没有找到相关文章

最新更新