Brak JPanelu w widoku design

0

W swoim kodzie posiadam dwa panele. W zakładce Design widze tylko jeden - co zrobic zeby mozna było przelaczac tam wszystkie moje panele po to np zeby szybko dodac komponent do ktoregos z nich.

1.JPG

 package program;
//dodac scroolPane do PoleInformacjiOUzytkowniku

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Image;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;

import java.awt.GridLayout;
import java.awt.FlowLayout;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingConstants;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.GridBagLayout;

import javax.swing.JTextField;

import java.awt.GridBagConstraints;
import java.awt.Insets;

import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;

import java.awt.Component;
import java.util.ArrayList;

import javax.swing.JTextArea;

public class GlownaRamka extends JFrame {

	private JPanel PanelOtwarciaProgramu;
	private JPanel PanelNowegoUzytkownika;
	private JTextField poleLogin;
	private JTextField poleHaslo;
	private JTextField poleImie;
	private JTextField poleNazwisko;
	private JTextField poleWiek;
	private JScrollPane pasekPionowy;
	private Border obramowanie;
	private JTextField poleWaga;
	private final ButtonGroup buttonGroup = new ButtonGroup();
	private JTextField poleEmail;
	
	private JTextArea PoleInformacjiOUzytkowniku;
	ArrayList<Uzytkownik> uzytkownicy = new ArrayList<Uzytkownik>();
    
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GlownaRamka frame = new GlownaRamka();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GlownaRamka() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		setResizable(false);
		PanelOtwarciaProgramu = new JPanel();
		PanelOtwarciaProgramu.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(PanelOtwarciaProgramu);
	    
		
		PanelNowegoUzytkownika = new JPanel();
		PanelNowegoUzytkownika.setBorder(new EmptyBorder(5, 5, 5, 5));
		
		
		obramowanie = BorderFactory.createLineBorder(Color.BLUE,2);
		
		
		poleLogin = new JTextField();
		poleLogin.setColumns(10);
		
		
		
		poleHaslo = new JTextField();
		poleHaslo.setColumns(10);
		
		poleImie = new JTextField();
		poleImie.setColumns(10);
		
		poleNazwisko = new JTextField();
		poleNazwisko.setColumns(10);
		
		poleWiek = new JTextField();
		poleWiek.setColumns(10);
		
		JLabel etykietaLogin = new JLabel("login");
		
		JLabel etykietaHaslo = new JLabel("haslo");
		
		JLabel etykietaImie = new JLabel("imie");
		
		JLabel etykietaNazwiko = new JLabel("nazwisko");
		
		JLabel etykietaWiek = new JLabel("wiek");
		
		poleWaga = new JTextField();
		poleWaga.setColumns(10);
		
		JLabel etykietaWaga = new JLabel("waga");
		
		JRadioButton rdbtnKobieta = new JRadioButton("Kobieta",false);
		rdbtnKobieta.setActionCommand("Kobieta");
		buttonGroup.add(rdbtnKobieta);
		
		
		JRadioButton rdbtnMezczyzna = new JRadioButton("Mezczyzna",true);
		rdbtnMezczyzna.setActionCommand("Mezczyzna");
		buttonGroup.add(rdbtnMezczyzna);
		
		
		poleEmail = new JTextField();
		poleEmail.setColumns(10);
		
		JLabel etykietaEmail = new JLabel("e-mail");
		
		
		PoleInformacjiOUzytkowniku = new JTextArea();
		PoleInformacjiOUzytkowniku.setRows(10);
		PoleInformacjiOUzytkowniku.setTabSize(10);
		PoleInformacjiOUzytkowniku.setWrapStyleWord(true);
		PoleInformacjiOUzytkowniku.setEditable(true);
		PoleInformacjiOUzytkowniku.setLineWrap(true);
		PoleInformacjiOUzytkowniku.setBorder(obramowanie);
		
		//JScrollPane pasekPionowy = new JScrollPane(PoleInformacjiOUzytkowniku);
	   // pasekPionowy.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 
		//pasekPionowy.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		//PanelNowegoUzytkownika.add(pasekPionowy);
		
		
		JButton PrzyciskPowrotStronaGlowna = new JButton("");
		//PrzyciskPowrotStronaGlowna.setIcon(new ImageIcon(GlownaRamka.class.getResource("resource/powrot.png")));
		
		PrzyciskPowrotStronaGlowna.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) 
			{
				getContentPane().remove(PanelNowegoUzytkownika);	
				getContentPane().add(PanelOtwarciaProgramu);
				validate();
				repaint();
				
			}
		});
		
		
		
		JButton PrzyciskStworzUzytkownika = new JButton("");
		
		PrzyciskStworzUzytkownika.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) 
			{
			    int wie = Integer.parseInt(poleWiek.getText());
			    double wag = Double.parseDouble(poleWaga.getText());
			    String ple = buttonGroup.getSelection().getActionCommand();
			    
			    program.Uzytkownik a = new Uzytkownik(poleImie.getText(),poleNazwisko.getText(),wie,wag,ple,poleEmail.getText(),poleLogin.getText(),poleHaslo.getText());	
			    uzytkownicy.add(a);
			    PoleInformacjiOUzytkowniku.append("Dodano uzytkownika nr :"+" "+ a.getId() +"\n");			 
			    PoleInformacjiOUzytkowniku.append("imie :" + " " + a.getImie()+"\n");
			    PoleInformacjiOUzytkowniku.append("nazwisko :" + " " + a.getNazwisko()+"\n");
			    PoleInformacjiOUzytkowniku.append("wiek :" + " " + a.getWiek()+"\n");
			    PoleInformacjiOUzytkowniku.append("waga :" + " " + a.getWaga()+"\n");
			    PoleInformacjiOUzytkowniku.append("plec :" + " " + a.getPlec()+"\n");
			    PoleInformacjiOUzytkowniku.append("email :" + " " + a.getAdresEmail()+"\n");
			    PoleInformacjiOUzytkowniku.append("----------------------------------------------" + "\n");
			    PoleInformacjiOUzytkowniku.append("login :" + " " + a.getLogin()+"\n");
			    PoleInformacjiOUzytkowniku.append("haslo :" + " " + a.getHaslo()+"\n");
			    
			    
			    
			    }
		});
		
		//PrzyciskStworzUzytkownika.setIcon(icon);
		
		
		
		GroupLayout gl_PanelNowegoUzytkownika = new GroupLayout(PanelNowegoUzytkownika);
		gl_PanelNowegoUzytkownika.setHorizontalGroup(
			gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_PanelNowegoUzytkownika.createSequentialGroup()
					.addContainerGap()
					.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.LEADING)
						.addComponent(etykietaEmail, Alignment.TRAILING)
						.addComponent(etykietaWaga, Alignment.TRAILING)
						.addComponent(etykietaWiek, Alignment.TRAILING)
						.addComponent(etykietaNazwiko, Alignment.TRAILING)
						.addComponent(etykietaImie, Alignment.TRAILING)
						.addComponent(etykietaHaslo, Alignment.TRAILING)
						.addComponent(etykietaLogin, Alignment.TRAILING))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.LEADING)
						.addComponent(rdbtnMezczyzna)
						.addComponent(poleEmail, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(rdbtnKobieta)
						.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.TRAILING)
							.addComponent(poleWiek, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
							.addComponent(poleNazwisko, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
							.addComponent(poleImie, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
							.addComponent(poleHaslo, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
							.addComponent(poleLogin, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
							.addComponent(poleWaga, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
					.addPreferredGap(ComponentPlacement.RELATED, 87, Short.MAX_VALUE)
					.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.TRAILING)
						.addGroup(gl_PanelNowegoUzytkownika.createSequentialGroup()
							.addComponent(PrzyciskStworzUzytkownika)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(PrzyciskPowrotStronaGlowna))
						.addComponent(PoleInformacjiOUzytkowniku, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE))
					.addGap(10))
		);
		gl_PanelNowegoUzytkownika.setVerticalGroup(
			gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_PanelNowegoUzytkownika.createSequentialGroup()
					.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.LEADING)
						.addGroup(gl_PanelNowegoUzytkownika.createSequentialGroup()
							.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.BASELINE)
								.addComponent(poleLogin, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(etykietaLogin))
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.BASELINE)
								.addComponent(poleHaslo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(etykietaHaslo))
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.BASELINE)
								.addComponent(poleImie, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(etykietaImie))
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.BASELINE)
								.addComponent(poleNazwisko, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(etykietaNazwiko))
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.TRAILING)
								.addGroup(gl_PanelNowegoUzytkownika.createSequentialGroup()
									.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.BASELINE)
										.addComponent(poleWiek, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
										.addComponent(etykietaWiek))
									.addPreferredGap(ComponentPlacement.RELATED)
									.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.BASELINE)
										.addComponent(poleWaga, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
										.addComponent(etykietaWaga))
									.addPreferredGap(ComponentPlacement.UNRELATED)
									.addComponent(rdbtnKobieta)
									.addGap(1)
									.addComponent(rdbtnMezczyzna)
									.addPreferredGap(ComponentPlacement.UNRELATED)
									.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.BASELINE)
										.addComponent(poleEmail, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
										.addComponent(etykietaEmail)))
								.addGroup(gl_PanelNowegoUzytkownika.createParallelGroup(Alignment.LEADING)
									.addComponent(PrzyciskPowrotStronaGlowna)
									.addComponent(PrzyciskStworzUzytkownika))))
						.addComponent(PoleInformacjiOUzytkowniku, GroupLayout.PREFERRED_SIZE, 171, GroupLayout.PREFERRED_SIZE))
					.addContainerGap(59, Short.MAX_VALUE))
		);
		gl_PanelNowegoUzytkownika.linkSize(SwingConstants.VERTICAL, new Component[] {poleLogin, poleHaslo, poleImie, poleNazwisko, poleWiek, poleWaga, poleEmail});
		gl_PanelNowegoUzytkownika.linkSize(SwingConstants.HORIZONTAL, new Component[] {poleLogin, poleHaslo, poleImie, poleNazwisko, poleWiek, poleWaga, poleEmail});
		PanelNowegoUzytkownika.setLayout(gl_PanelNowegoUzytkownika);
		
		
		
		
		
		JButton PrzyciskNowyUzytkownik = new JButton("Nowy Uzytkownik");
		PrzyciskNowyUzytkownik.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) 
			{
				getContentPane().remove(PanelOtwarciaProgramu);	
				getContentPane().add(PanelNowegoUzytkownika);
				validate();
				repaint();
			}
		});
		PrzyciskNowyUzytkownik.setBounds(10, 216, 163, 34);
		
		JButton PrzyciskLogowanie = new JButton("Logowanie");
		PrzyciskLogowanie.setBounds(10, 171, 163, 34);
		PanelOtwarciaProgramu.setLayout(null);
		PanelOtwarciaProgramu.add(PrzyciskNowyUzytkownik);
		PanelOtwarciaProgramu.add(PrzyciskLogowanie);
		
		JButton PrzyciskOProgramie = new JButton("O Programie");
		PrzyciskOProgramie.setBounds(297, 216, 127, 34);
		PanelOtwarciaProgramu.add(PrzyciskOProgramie);
	}
}
0

Jezeli uzyje

getContentPane().add(PanelOtwarciaProgramu);
getContentPane().add(PanelNowegoUzytkownika);

widać dwa panele ale niestety PanelNowegoUzytkownika przesłania PanelOtwarciaProgramu i nie mozna zobaczyc komponentow na nim

2.JPG

1

JFrame ma domyślnie BorderLayout. Przy tym layoucie metoda add wymaga dwóch argumentów: komponent i lokalizacja, np.

add(PanelOtwarciaProgramu,BorderLayout.WEST);

doda panel po lwej stronie.
Użycie getContentPane() jest zbyteczne.

0

Dzieki za odpowiedz a teraz z innej beczki ... zauwazyłeś cos w tym kodzie co jest bardzo niepoprawne i nie powinienem tego stosowac ?

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