Jak rozmieścić JPanele

0

Witam, mam mam do zrobienia zadanie w którym dwa JPanele będą umieszczone u góry , z czego jeden wyrównany do prawej a drugi do lewej. JPanele zawierają po trzy JButtony.
Moje zadanie wygląda tak :

   
import java.awt.*;

import javax.swing.*;

public class demo {

  public static void main(String[] args) {



    JFrame frame = new JFrame("ZADANIE"); // okno i contentPane

  
    JButton label = new JButton("C1");
    JButton labell = new JButton("C2");
    JButton labelll = new JButton("C3");
    JPanel tabPanel = new JPanel( new FlowLayout(FlowLayout.LEFT));
    tabPanel.add(label);
    tabPanel.add(labell);
    tabPanel.add(labelll);
    
    JButton inny = new JButton("D1");  
    JButton innyy = new JButton("D2");
    JButton innyyy = new JButton("D3");
    JPanel tabPanell = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    tabPanell.add(inny,new JPanel(new FlowLayout()));
   tabPanell.add(innyy,new JPanel(new FlowLayout()));
    tabPanell.add(innyyy,new JPanel(new FlowLayout()));
  
    frame.add(tabPanel,  (BorderLayout.NORTH));
   frame.add(tabPanell, BorderLayout.NORTH);

    

   
      JTextArea textArea = new JTextArea(9,30);
      textArea.setText("To jest Jtext Area  ");
     
      textArea.setEditable(true);
      
      JScrollPane scrollPanel = new JScrollPane(new JScrollPane(textArea) );
     
      
      frame.add(scrollPanel, BorderLayout.CENTER);
      frame.pack();
      frame.setVisible(true);

      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.pack();
      frame.setVisible(true);
       
    }
  
  }

Problem w tym że JPanele nakładają się na siebie, jak to zrobić żeby działało ?

0

To

frame.add(tabPanel, (BorderLayout.NORTH));
frame.add(tabPanell, BorderLayout.NORTH);

jest bez sensu. (Za nazwy zmiennych pójdziesz do piekła).

0

o to Ci chodzi? Tak na szybko cos luknąlem

 
import java.awt.*;
 
import javax.swing.*;
 
public class demo extends JFrame
{
 
  public static void main(String[] args) {
 
 
 
    JFrame frame = new JFrame("ZADANIE"); // okno i contentPane
 
 
    JButton label = new JButton("C1");
    JButton labell = new JButton("C2");
    JButton labelll = new JButton("C3");
    JPanel tabPanel = new JPanel( new FlowLayout(FlowLayout.LEFT));
    tabPanel.add(label);
    tabPanel.add(labell);
    tabPanel.add(labelll);
 
    JButton inny = new JButton("D1");  
    JButton innyy = new JButton("D2");
    JButton innyyy = new JButton("D3");
    JPanel tabPanell = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    tabPanell.add(inny,new JPanel(new FlowLayout()));
   tabPanell.add(innyy,new JPanel(new FlowLayout()));
    tabPanell.add(innyyy,new JPanel(new FlowLayout()));
 
    //frame.add(tabPanel,  (BorderLayout.NORTH));
  // frame.add(tabPanell, BorderLayout.NORTH);
 
 
 
 
      JTextArea textArea = new JTextArea(9,30);
      textArea.setText("To jest Jtext Area  ");
 
      textArea.setEditable(true);
      frame.setLayout(new GridLayout(1,3));
      frame.add(tabPanel);
      frame.add(tabPanell);
      frame.setVisible(true);
      
 
     // JScrollPane scrollPanel = new JScrollPane(new JScrollPane(textArea) );
 
 /*
      frame.add(scrollPanel, BorderLayout.CENTER);
      frame.pack();
      frame.setVisible(true);
 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.pack();
      frame.setVisible(true);*/
 
    }
 
  }
0

Chodziło mi o to, że instrukcje

frame.add(tabPanel, BorderLayout.NORTH);
frame.add(tabPanell, BorderLayout.NORTH);

umieszczają panel w tej samej górnej części JFrame. W konsekwencji tabPanell przykrywa tabPanel.

0

Uzupełniłem kawałek Twojego programu.

frame.setLayout(new GridLayout(1,3));
frame.add(tabPanel);
frame.add(textArea); //o tym chyba zapomniałeś
frame.add(tabPanell);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //bez tego Twojego programu nie można zakończyć
frame.pack(); //to wymusza policzenie rozmiarów komponentów i całego okna
frame.setVisible(true);

1 użytkowników online, w tym zalogowanych: 0, gości: 1