Brak JPanelu w widoku design

2015-02-09 11:24

Rejestracja: 10 lat temu

Ostatnio: 1 godzina temu

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);
    }
}
  • 1.JPG (0.1 MB) - ściągnięć: 77
  • delete (0.1 MB) - ściągnięć: 102

Pozostało 580 znaków

2015-02-09 11:52

Rejestracja: 10 lat temu

Ostatnio: 1 godzina temu

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

  • 2.JPG (0.14 MB) - ściągnięć: 82

Pozostało 580 znaków

2015-02-09 12:54
Moderator

Rejestracja: 11 lat temu

Ostatnio: 5 dni temu

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.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2015-02-09 13:21

Rejestracja: 10 lat temu

Ostatnio: 1 godzina temu

0

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

Pozostało 580 znaków

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