Witam!
Dopiero zaczynam moją przygodę z javą. Doszedłem do wniosku, że dla znajomego napiszę program, dzięki któremu będzie mógł tworzyć i przeglądać harmonogramy dla swoich kierowców.
Aplikację piszę w NetBeans.
Po kolei:
Mam utworzone trzy osobne klasy:
- Harmonogram - służy do uruchomienia okna głównego programu
- OknoGLowne - jFrame z jMenu
- PanelKierowcyDodaj - jPanel ze zdefiniowanymi podstawowymi lablemai, textfieldami etc.
Teraz chciałbym, aby po kliknięciu na "Dodaj kierowcę" w menu w OknoGlowne pojawił się PanelKierowcyDodaj. Nie mogę sobie z tym poradzić.
Tak wygląda wywołanie w menu:
private void KierowcyDodajActionPerformed(java.awt.event.ActionEvent evt) {
PanelKierowcyDodaj panel = new PanelKierowcyDodaj();
add(panel);
panel.setVisible(true);
}
Próbowałem jeszcze zrobić to tak:
private void KierowcyDodajActionPerformed(java.awt.event.ActionEvent evt) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new PanelKierowcyDodaj().setVisible(true);
}
});
}
Paru innych rzeczy też próbowałem i najczęściej kończyło się na braku błędów przy kompilacji i niemożliwością odpalenia panelu dodawania kierowcy. Szczerze mówiąc - nie wiem gdzie tkwi błąd.
Obecnie tak wygląda program:
Harmonogram.java:
package harmonogram;
public class Harmonogram {
public static void main(String[] args) {
new OknoGlowne().setVisible(true);
new PanelKierowcyDodaj().setVisible(true);
}
}
PanelKierowcyDodaj.java:
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())
);
}// </editor-fold>
// Variables declaration - do not modify
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;
// End of variables declaration
}
OknoGlowne:
package harmonogram;
public class OknoGlowne extends javax.swing.JFrame {
public OknoGlowne() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jMenuItem2 = new javax.swing.JMenuItem();
jPanel1 = new javax.swing.JPanel();
MenuBar = new javax.swing.JMenuBar();
Plik = new javax.swing.JMenu();
PlikZamknij = new javax.swing.JMenuItem();
Kierowcy = new javax.swing.JMenu();
KierowcyDodaj = new javax.swing.JMenuItem();
KierowcyUsun = new javax.swing.JMenuItem();
KierowcyInformacje = new javax.swing.JMenuItem();
Rozklady = new javax.swing.JMenu();
RozkladyDodajLinie = new javax.swing.JMenuItem();
RozkladyUsunLinie = new javax.swing.JMenuItem();
RozkladyDodajKurs = new javax.swing.JMenuItem();
RozkladyUsunKurs = new javax.swing.JMenuItem();
RozkladyPokaz = new javax.swing.JMenuItem();
Wyjazdy = new javax.swing.JMenu();
WyjazdyDodaj = new javax.swing.JMenuItem();
WyjazdyUsun = new javax.swing.JMenuItem();
WyjazdyPokaz = new javax.swing.JMenuItem();
Pojazdy = new javax.swing.JMenu();
PojazdyDodaj = new javax.swing.JMenuItem();
PojazdyUsun = new javax.swing.JMenuItem();
PojazdyWyswietl = new javax.swing.JMenuItem();
Harmonogramy = new javax.swing.JMenu();
HarmonogramyDodaj = new javax.swing.JMenuItem();
HarmonogramyUsun = new javax.swing.JMenuItem();
HarmonogramyPokaz = new javax.swing.JMenuItem();
jMenuItem2.setText("Zamknij");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Harmonogramy v 1.0");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 629, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 378, Short.MAX_VALUE)
);
Plik.setText("PLIK");
Plik.setMargin(new java.awt.Insets(0, 0, 0, 10));
PlikZamknij.setLabel("Zamknij");
PlikZamknij.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
PlikZamknijActionPerformed(evt);
}
});
Plik.add(PlikZamknij);
MenuBar.add(Plik);
Kierowcy.setText("KIEROWCY");
Kierowcy.setMargin(new java.awt.Insets(0, 0, 0, 10));
KierowcyDodaj.setLabel("Dodaj");
KierowcyDodaj.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
KierowcyDodajActionPerformed(evt);
}
});
Kierowcy.add(KierowcyDodaj);
KierowcyUsun.setLabel("Usuń");
Kierowcy.add(KierowcyUsun);
KierowcyInformacje.setLabel("Informacje o kierowcy");
Kierowcy.add(KierowcyInformacje);
MenuBar.add(Kierowcy);
Rozklady.setLabel("ROZKŁADY JAZDY");
Rozklady.setMargin(new java.awt.Insets(0, 0, 0, 10));
RozkladyDodajLinie.setLabel("Dodaj linie");
Rozklady.add(RozkladyDodajLinie);
RozkladyUsunLinie.setLabel("Usuń linie");
Rozklady.add(RozkladyUsunLinie);
RozkladyDodajKurs.setLabel("Dodaj Kurs");
Rozklady.add(RozkladyDodajKurs);
RozkladyUsunKurs.setLabel("Usuń kurs");
Rozklady.add(RozkladyUsunKurs);
RozkladyPokaz.setText("Pokaż rozkład jazdy");
Rozklady.add(RozkladyPokaz);
MenuBar.add(Rozklady);
Wyjazdy.setText("WYJAZDY");
Wyjazdy.setName("Wyjazdy"); // NOI18N
WyjazdyDodaj.setText("Usuń");
Wyjazdy.add(WyjazdyDodaj);
WyjazdyUsun.setText("Dodaj");
Wyjazdy.add(WyjazdyUsun);
WyjazdyPokaz.setText("Pokaż");
Wyjazdy.add(WyjazdyPokaz);
MenuBar.add(Wyjazdy);
Pojazdy.setText("POJAZDY");
PojazdyDodaj.setText("Dodaj pojazd");
Pojazdy.add(PojazdyDodaj);
PojazdyUsun.setText("Usuń pojazd");
Pojazdy.add(PojazdyUsun);
PojazdyWyswietl.setText("Wyświetl pojazdy");
Pojazdy.add(PojazdyWyswietl);
MenuBar.add(Pojazdy);
Harmonogramy.setLabel("HARMONOGRAMY");
HarmonogramyDodaj.setLabel("Dodaj harmonogram");
Harmonogramy.add(HarmonogramyDodaj);
HarmonogramyUsun.setLabel("Usuń harmonogram");
Harmonogramy.add(HarmonogramyUsun);
HarmonogramyPokaz.setLabel("Pokaż harmonogramy");
Harmonogramy.add(HarmonogramyPokaz);
MenuBar.add(Harmonogramy);
setJMenuBar(MenuBar);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
}
private void KierowcyDodajActionPerformed(java.awt.event.ActionEvent evt) {
PanelKierowcyDodaj panel = new PanelKierowcyDodaj();
add(panel);
panel.setVisible(true);
}
private void PlikZamknijActionPerformed(java.awt.event.ActionEvent evt) {
java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(new java.awt.event.WindowEvent(this, java.awt.event.WindowEvent.WINDOW_CLOSING));
}
public static void main(String args[]) {
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
/* new PanelKierowcyDodaj().setVisible(true);
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(OknoGlowne.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} */
//</editor-fold>
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new OknoGlowne().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JMenu Harmonogramy;
private javax.swing.JMenuItem HarmonogramyDodaj;
private javax.swing.JMenuItem HarmonogramyPokaz;
private javax.swing.JMenuItem HarmonogramyUsun;
private javax.swing.JMenu Kierowcy;
private javax.swing.JMenuItem KierowcyDodaj;
private javax.swing.JMenuItem KierowcyInformacje;
private javax.swing.JMenuItem KierowcyUsun;
private javax.swing.JMenuBar MenuBar;
private javax.swing.JMenu Plik;
private javax.swing.JMenuItem PlikZamknij;
private javax.swing.JMenu Pojazdy;
private javax.swing.JMenuItem PojazdyDodaj;
private javax.swing.JMenuItem PojazdyUsun;
private javax.swing.JMenuItem PojazdyWyswietl;
private javax.swing.JMenu Rozklady;
private javax.swing.JMenuItem RozkladyDodajKurs;
private javax.swing.JMenuItem RozkladyDodajLinie;
private javax.swing.JMenuItem RozkladyPokaz;
private javax.swing.JMenuItem RozkladyUsunKurs;
private javax.swing.JMenuItem RozkladyUsunLinie;
private javax.swing.JMenu Wyjazdy;
private javax.swing.JMenuItem WyjazdyDodaj;
private javax.swing.JMenuItem WyjazdyPokaz;
private javax.swing.JMenuItem WyjazdyUsun;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}