Rozmieszczenie paneli w ramce

0

Ponizej wrzucę 3x klasy.Zerknijcie na kod i podpowiedzcie co jest nie tak poniewa przy próbie odpalenia ramki pojawia się :

blad.JPG

Problem jest tu ale co jest nie tak w tym geterze :


PrzyciskNowyUzytkownik = new JButton("Nowy Uzytkownik");
    PrzyciskNowyUzytkownik.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) 
        {
            ramka.getContentPane().remove(ramka.getpanOtwarciaProgramu());  
            ramka.getContentPane().add(ramka.getpanNowegoUzytkownika());
            ramka.validate();
            ramka.repaint();    

        }
    });

KLASA RAMKI :


package program;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.EventQueue;

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

public class GlownaRamka extends JFrame {

    private PanelOtwarciaProgramu panOtwarciaProgramu;
    private PanelNowegoUzytkownika panNowegoUzytkownika;
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    GlownaRamka frame = new GlownaRamka();
                    frame.pack();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public PanelOtwarciaProgramu getpanOtwarciaProgramu()
    {
    return panOtwarciaProgramu; 
    }

    public PanelNowegoUzytkownika getpanNowegoUzytkownika()
    {
    return panNowegoUzytkownika;    
    }

    /**
     * Create the frame.
     */
    public GlownaRamka() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new CardLayout(0, 0));

        panOtwarciaProgramu= new PanelOtwarciaProgramu(this);
        panOtwarciaProgramu.setBorder(new EmptyBorder(5, 5, 5, 5));
        getContentPane().add(panOtwarciaProgramu);

        panNowegoUzytkownika= new PanelNowegoUzytkownika(this);
        panNowegoUzytkownika.setBorder(new EmptyBorder(5, 5, 5, 5));
       // getContentPane().add(panNowegoUzytkownika);

    }

}

KLASA PanelOtwarciaProgramu :


package program;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JPanel;
import javax.swing.LayoutStyle.ComponentPlacement;

//import program.GlownaRamka;
//import program.OknaDialogowe;

public class PanelOtwarciaProgramu extends JPanel
{
    private JButton PrzyciskNowyUzytkownik; 
    private JButton PrzyciskLogowanie;  
    private JButton PrzyciskOProgramie;
    private GlownaRamka ramka;
    public PanelOtwarciaProgramu(GlownaRamka main)
    {

    main = this.ramka;  
    PrzyciskNowyUzytkownik = new JButton("Nowy Uzytkownik");
    PrzyciskNowyUzytkownik.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) 
        {
            ramka.getContentPane().remove(ramka.getpanOtwarciaProgramu());  
            ramka.getContentPane().add(ramka.getpanNowegoUzytkownika());
            ramka.validate();
            ramka.repaint();    

        }
    });

    JButton PrzyciskLogowanie = new JButton("Logowanie");
    PrzyciskLogowanie.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) 
        {

            /*OknaDialogowe dialog = new OknaDialogowe(GlownaRamka.this);
            dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
            dialog.pack();
            dialog.setVisible(true);*/

        }
    });

KLASA PanelNowegoUzytkownika :


package program;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.util.Map;

import javax.swing.ButtonGroup;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import java.awt.FlowLayout;
import javax.swing.SwingConstants;
import java.awt.Component;

public class PanelNowegoUzytkownika extends JPanel
{
    private JTextField poleLogin;
    private JTextField poleHaslo;
    private JTextField poleImie;
    private JTextField poleNazwisko;
    private JTextField poleWiek;    
    private JTextField poleWaga;
    private JTextField poleEmail;
    private JTextArea PoleInformacjiOUzytkowniku;
    private static Map<String,Uzytkownik> uzytkownicyMapa;
    private final ButtonGroup buttonGroup = new ButtonGroup();
    private JLabel etykietaLogin;
    private JLabel etykietaHaslo;
    private JLabel etykietaImie;
    private JLabel etykietaNazwiko;
    private JLabel etykietaWiek;
    private JLabel etykietaEmail;
    private JLabel etykietaWaga;
    private Uzytkownik uzytkownik;
    private GlownaRamka ramka;

    public PanelNowegoUzytkownika(GlownaRamka main)
    {
    main = this.ramka;  
    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);

    etykietaLogin = new JLabel("login");

    etykietaHaslo = new JLabel("haslo");

    etykietaImie = new JLabel("imie");

    etykietaNazwiko = new JLabel("nazwisko");

    etykietaWiek = new JLabel("wiek");

    poleWaga = new JTextField();
    poleWaga.setColumns(10);

    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);

    etykietaEmail = new JLabel("e-mail");

    PoleInformacjiOUzytkowniku = new JTextArea();
    PoleInformacjiOUzytkowniku.setRows(10);
    PoleInformacjiOUzytkowniku.setTabSize(10);
    PoleInformacjiOUzytkowniku.setWrapStyleWord(true);
    PoleInformacjiOUzytkowniku.setEditable(false);
    PoleInformacjiOUzytkowniku.setLineWrap(true);

    JButton PrzyciskPowrotStronaGlowna = new JButton("");
    PrzyciskPowrotStronaGlowna.setIcon(new ImageIcon(GlownaRamka.class.getResource("jpg/powrot.png")));

    PrzyciskPowrotStronaGlowna.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) 
        {

            ramka.getContentPane().remove(ramka.getpanNowegoUzytkownika()); 
            ramka.getContentPane().add(ramka.getpanOtwarciaProgramu());
            ramka.validate();
            ramka.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();

            uzytkownik = new Uzytkownik(poleImie.getText(),poleNazwisko.getText(),wie,wag,ple,poleEmail.getText(),poleLogin.getText(),poleHaslo.getText()); 
            uzytkownicyMapa.put(poleLogin.getText(),uzytkownik);

            PoleInformacjiOUzytkowniku.append("Dodano uzytkownika"+"\n");            
            PoleInformacjiOUzytkowniku.append("imie :" + " " + uzytkownik.getImie()+"\n");
            PoleInformacjiOUzytkowniku.append("nazwisko :" + " " + uzytkownik.getNazwisko()+"\n");
            PoleInformacjiOUzytkowniku.append("wiek :" + " " + uzytkownik.getWiek()+"\n");
            PoleInformacjiOUzytkowniku.append("waga :" + " " + uzytkownik.getWaga()+"\n");
            PoleInformacjiOUzytkowniku.append("plec :" + " " + uzytkownik.getPlec()+"\n");
            PoleInformacjiOUzytkowniku.append("email :" + " " + uzytkownik.getAdresEmail()+"\n");
            PoleInformacjiOUzytkowniku.append("----------------------------------------------" + "\n");
            PoleInformacjiOUzytkowniku.append("login :" + " " + uzytkownik.getLogin()+"\n");
            PoleInformacjiOUzytkowniku.append("haslo :" + " " + uzytkownik.getHaslo()+"\n");

            poleImie.setText("");
            poleNazwisko.setText("");
            poleEmail.setText("");
            poleWiek.setText("");
            poleWaga.setText("");
            poleLogin.setText("");
            poleHaslo.setText("");

            try {
                FileOutputStream PolaczZapiszUzytkownicy = new FileOutputStream("uzytkowinicyStan.ser");
                ObjectOutputStream zapiszUzytkownicy = new ObjectOutputStream(PolaczZapiszUzytkownicy);
                zapiszUzytkownicy.writeObject(uzytkownicyMapa);
                zapiszUzytkownicy.close();
            } catch (Exception ex) {
                // TODO Auto-generated catch block
                ex.printStackTrace();
            }

        }
    });

    PrzyciskStworzUzytkownika.setIcon(new ImageIcon(GlownaRamka.class.getResource("jpg/nowy.png")));
1

W klasie PanelOtwarciaProgramu masz błąd

main = this.ramka;    

Powinieneś main do ramki przypisać

0

Dzięki teraz widzę.

0

Dorzuce jescze do tego wątku kolejne zapytanie. Zerknijcie na poniższe dwie klasy swoim fachowym okiem. Chce wyswietlic w ramce ten Panel.

KOD RAMKI :


package program;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.EventQueue;

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

public class test extends JFrame {

    private PanelPrzebieguCwiczen1 panel;
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    test frame = new test();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public test() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);

        panel = new PanelPrzebieguCwiczen1(this);
        panel.setBorder(new EmptyBorder(5, 5, 5, 5));
        getContentPane().add(panel);
    }

}

KOD PANELU:


package program;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;

import java.awt.FlowLayout;

import javax.swing.LayoutStyle.ComponentPlacement;

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

public class PanelPrzebieguCwiczen1 extends JPanel
{

private JFormattedTextField textFieldCwiczenie1;
private JTextField textFieldLicznikPowtorzenCwiczenie1;
private JComboBox<Object> comboBoxCwiczenie1;       
private int licznikWykonaniaCwiczenie1;     
private int licznik1=0;     
private JProgressBar progressBarCwiczenie1; 
private JToggleButton ToggleButtonStartStopCwiczenie1;
private JLabel etykietaIloscWykonanychSeriiCwiczenie1;
private JButton PrzyciskWykonanoCwiczenie1;
private JPanel panPrzebieguCwiczen1;
private JLabel etykietaCwiczenie1;

private test testowaramka;

public PanelPrzebieguCwiczen1(test main) 
{

panPrzebieguCwiczen1 = new JPanel();    
this.testowaramka = main;
progressBarCwiczenie1 = new JProgressBar();

comboBoxCwiczenie1 = new JComboBox<Object>();
comboBoxCwiczenie1.setToolTipText("Wybierz \u0107wiczenie z listy");

textFieldCwiczenie1 = new JFormattedTextField();
textFieldCwiczenie1.setEditable(false);
textFieldCwiczenie1.setColumns(10);

etykietaIloscWykonanychSeriiCwiczenie1 = new JLabel("ilo\u015B\u0107 powt\u00F3rze\u0144");

textFieldLicznikPowtorzenCwiczenie1 = new JTextField("0");
textFieldLicznikPowtorzenCwiczenie1.setEditable(false);
textFieldLicznikPowtorzenCwiczenie1.setColumns(10);

ToggleButtonStartStopCwiczenie1 = new JToggleButton("START");
ToggleButtonStartStopCwiczenie1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {

        if (ToggleButtonStartStopCwiczenie1.isSelected())
        {
            ToggleButtonStartStopCwiczenie1.setText("STOP");
        }
        else 
        {
            ToggleButtonStartStopCwiczenie1.setText("START");
}

    }
});

PrzyciskWykonanoCwiczenie1 = new JButton("Wykonano");

etykietaCwiczenie1 = new JLabel("\u0106WICZENIE nr 1");

GroupLayout gl_panPrzebieguCwiczen1 = new GroupLayout(panPrzebieguCwiczen1);
gl_panPrzebieguCwiczen1.setHorizontalGroup(
    gl_panPrzebieguCwiczen1.createParallelGroup(Alignment.LEADING)
        .addGroup(gl_panPrzebieguCwiczen1.createSequentialGroup()
            .addContainerGap()
            .addGroup(gl_panPrzebieguCwiczen1.createParallelGroup(Alignment.LEADING)
                .addGroup(gl_panPrzebieguCwiczen1.createSequentialGroup()
                    .addGroup(gl_panPrzebieguCwiczen1.createParallelGroup(Alignment.TRAILING)
                        .addComponent(PrzyciskWykonanoCwiczenie1, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)
                        .addComponent(progressBarCwiczenie1, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(ComponentPlacement.RELATED)
                    .addGroup(gl_panPrzebieguCwiczen1.createParallelGroup(Alignment.LEADING)
                        .addComponent(textFieldCwiczenie1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                        .addGroup(gl_panPrzebieguCwiczen1.createSequentialGroup()
                            .addComponent(textFieldLicznikPowtorzenCwiczenie1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(ComponentPlacement.RELATED)
                            .addComponent(etykietaIloscWykonanychSeriiCwiczenie1)))
                    .addGap(114))
                .addGroup(gl_panPrzebieguCwiczen1.createSequentialGroup()
                    .addGroup(gl_panPrzebieguCwiczen1.createParallelGroup(Alignment.TRAILING)
                        .addComponent(ToggleButtonStartStopCwiczenie1, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(comboBoxCwiczenie1, Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 321, GroupLayout.PREFERRED_SIZE))
                    .addContainerGap(109, Short.MAX_VALUE))
                .addGroup(gl_panPrzebieguCwiczen1.createSequentialGroup()
                    .addComponent(etykietaCwiczenie1)
                    .addContainerGap(295, Short.MAX_VALUE))))
);
gl_panPrzebieguCwiczen1.setVerticalGroup(
    gl_panPrzebieguCwiczen1.createParallelGroup(Alignment.LEADING)
        .addGroup(gl_panPrzebieguCwiczen1.createSequentialGroup()
            .addGap(15)
            .addComponent(etykietaCwiczenie1)
            .addPreferredGap(ComponentPlacement.RELATED)
            .addComponent(comboBoxCwiczenie1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(ComponentPlacement.RELATED)
            .addGroup(gl_panPrzebieguCwiczen1.createParallelGroup(Alignment.LEADING, false)
                .addComponent(progressBarCwiczenie1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(textFieldCwiczenie1))
            .addPreferredGap(ComponentPlacement.RELATED)
            .addGroup(gl_panPrzebieguCwiczen1.createParallelGroup(Alignment.BASELINE)
                .addComponent(PrzyciskWykonanoCwiczenie1)
                .addComponent(textFieldLicznikPowtorzenCwiczenie1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .addComponent(etykietaIloscWykonanychSeriiCwiczenie1))
            .addPreferredGap(ComponentPlacement.RELATED)
            .addComponent(ToggleButtonStartStopCwiczenie1, GroupLayout.PREFERRED_SIZE, 45, GroupLayout.PREFERRED_SIZE)
            .addContainerGap(139, Short.MAX_VALUE))
);
panPrzebieguCwiczen1.setLayout(gl_panPrzebieguCwiczen1);

}   
}
1

ciekaw jestem czy ktoś się odważy rozkminiać kod generowany przez netbeansa :)
proszę

GroupLayout gl_panPrzebieguCwiczen1 = new GroupLayout(this);

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