konto usunięte
Temat: Jak wyświetlić jPanel po kliknięcie w menu - jPanel to...
Witam.Jestem całkowicie zielony z Javy i dopiero zacząłem jej naukę.
Doszedłem do wniosku, że napiszę sobie bardzo prosty program do ustalania harmonogramu jazdy kierowców. Jest on potrzebny znajomemu, więc nauka i program nie pójdą w las :)
Całość pisżę w NetBeans
Ale do rzeczy. Póki co w programie Harmonogram stworzyłem sobie 3 pliki klas:
- Harmonogram - który wyświetla okno na ekran
- OknoGlowne - zdefiniowane jFrame oraz menu
- PanelKierowcyDodaj - jPanel na którym znajdują się labele, pola tekstowe i przyciski.
I teraz po kolei. jak już wspomniałem w OknoGlowne mam zdefiniowane menu. I teraz chciałbym, aby po kliknięciu na "Dodaj Kierowcę" pojawił się panel zdefiniowany w klasie PanelKierowcyDodaj. Póki co się nie pojawia i program nie zgłasza błędów.
Ja to rozmkiniłem w ten sposób:
- menu do dodawania kierowców:
private void KierowcyDodajActionPerformed(java.awt.event.ActionEvent evt) {
PanelKierowcyDodaj panel = new PanelKierowcyDodaj();
add(panel);
panel.setVisible(true);
}
- jPanel zdefiniowany w klasie PanelKierowcyDodaj (na razie nie robi nic):
package harmonogram;
public class PanelKierowcyDodaj extends javax.swing.JPanel {
public PanelKierowcyDodaj() {
initComponents();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new PanelKierowcyDodaj().setVisible(true);
}
});
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLayeredPane1 = new javax.swing.JLayeredPane();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
dodTextImie = new javax.swing.JTextField();
dodTextNazwisko = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jTextField3 = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jTextField4 = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
jTextField5 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jLayeredPane1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "DODAWANIE KIEROWCÓW", 0, 0, new java.awt.Font("Dialog", 1, 14))); // NOI18N
jLabel1.setText("Imię:");
jLabel1.setBounds(20, 50, 51, 15);
jLayeredPane1.add(jLabel1, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLabel2.setText("Nazwisko");
jLabel2.setBounds(230, 50, 80, 15);
jLayeredPane1.add(jLabel2, javax.swing.JLayeredPane.DEFAULT_LAYER);
dodTextImie.setBounds(20, 70, 170, 30);
jLayeredPane1.add(dodTextImie, javax.swing.JLayeredPane.DEFAULT_LAYER);
dodTextNazwisko.setBounds(230, 70, 190, 30);
jLayeredPane1.add(dodTextNazwisko, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLabel3.setText("PESEL:");
jLabel3.setBounds(20, 120, 47, 15);
jLayeredPane1.add(jLabel3, javax.swing.JLayeredPane.DEFAULT_LAYER);
jTextField1.setBounds(20, 210, 170, 30);
jLayeredPane1.add(jTextField1, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLabel4.setText("Seria i nr dowodu osobistego\n");
jLabel4.setBounds(230, 120, 220, 15);
jLayeredPane1.add(jLabel4, javax.swing.JLayeredPane.DEFAULT_LAYER);
jTextField2.setBounds(230, 140, 190, 30);
jLayeredPane1.add(jTextField2, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLabel5.setText("Telefon domowy:");
jLabel5.setBounds(230, 190, 150, 15);
jLayeredPane1.add(jLabel5, javax.swing.JLayeredPane.DEFAULT_LAYER);
jTextField3.setBounds(20, 140, 170, 30);
jLayeredPane1.add(jTextField3, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLabel6.setText("Telefon komórkowy:");
jLabel6.setBounds(20, 190, 150, 15);
jLayeredPane1.add(jLabel6, javax.swing.JLayeredPane.DEFAULT_LAYER);
jTextField4.setBounds(230, 210, 170, 30);
jLayeredPane1.add(jTextField4, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLabel7.setText("Telefon firmowy:");
jLabel7.setBounds(430, 190, 130, 15);
jLayeredPane1.add(jLabel7, javax.swing.JLayeredPane.DEFAULT_LAYER);
jTextField5.setBounds(430, 210, 170, 30);
jLayeredPane1.add(jTextField5, javax.swing.JLayeredPane.DEFAULT_LAYER);
jButton1.setText("DODAJ");
jButton1.setBounds(400, 310, 78, 25);
jLayeredPane1.add(jButton1, javax.swing.JLayeredPane.DEFAULT_LAYER);
jButton2.setText("ANULUJ");
jButton2.setBounds(510, 310, 85, 25);
jLayeredPane1.add(jButton2, javax.swing.JLayeredPane.DEFAULT_LAYER);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 629, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 363, Short.MAX_VALUE)
.addContainerGap())
);
}
private javax.swing.JTextField dodTextImie;
private javax.swing.JTextField dodTextNazwisko;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLayeredPane jLayeredPane1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
}
Nie do końća jestem pewny, czy aby dobrze wywołuję klasę w menu (skoro nie działa to coś jest z tym wywołaniem nie tak).