2017-06-22 23 views
0

我希望我做這個權利,首先在這裏發佈。我只用java編了幾周,所以這可能非常簡單,但我無法弄清楚,我試過我的java書,youtube,google。我有一個帶有文本框和一個按鈕的面板,按下按鈕後,一個新的面板應該顯示一些其他文本框。當按鈕被點擊時,新面板顯示出來,只有它保持空白。我猜我必須將一些代碼放在不同的位置才能真正顯示?任何幫助,將不勝感激,我希望代碼是可讀的,我不明白我到哪裏去錯了,所以認爲最好是完全添加它。按鈕事件後,第二個面板是空的

import javax.swing.*; 
import java.awt.event.*; 
import java.awt.*; 

public class java03 extends JFrame 
{ 

public static void main (String args[]) 
    { 
     JFrame frame1 = new java03(); 
     frame1.setSize (600, 500); 
     frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame1.setTitle("Hour Registration"); 
     JPanel paneel = new Paneelinvoer(); 
     frame1.setContentPane(paneel); 
     frame1.setVisible (true); 

} 
} 

class Paneelinvoer extends JPanel 
{ 
private JTextField naaminvoer, badgeinvoer; 
private JTextField maandaginvoer, dinsdaginvoer, woensdaginvoer, donderdaginvoer, vrijdaginvoer, zaterdaginvoer, zondaginvoer; 
private JLabel naam, badge, uren; 
private JLabel maandag, dinsdag, woensdag, donderdag, vrijdag, zaterdag, zondag; 
private JButton knop; 

public Paneelinvoer() 
{ 
    setLayout(null); 

    //tekstvakken 
    naaminvoer = new JTextField(40); 
    naaminvoer.setHorizontalAlignment (JTextField.LEFT); 

    badgeinvoer = new JTextField(4); 
    badgeinvoer.setHorizontalAlignment (JTextField.LEFT); 

    maandaginvoer = new JTextField(2); 
    maandaginvoer.setHorizontalAlignment (JTextField.LEFT); 

    dinsdaginvoer = new JTextField(2); 
    dinsdaginvoer.setHorizontalAlignment (JTextField.LEFT); 

    woensdaginvoer = new JTextField(2); 
    woensdaginvoer.setHorizontalAlignment (JTextField.LEFT); 

    donderdaginvoer = new JTextField(2); 
    donderdaginvoer.setHorizontalAlignment (JTextField.LEFT); 

    vrijdaginvoer = new JTextField(2); 
    vrijdaginvoer.setHorizontalAlignment (JTextField.LEFT); 

    zaterdaginvoer = new JTextField(2); 
    zaterdaginvoer.setHorizontalAlignment (JTextField.LEFT); 

    zondaginvoer = new JTextField(2); 
    zondaginvoer.setHorizontalAlignment (JTextField.LEFT); 

    //labels 
    naam = new JLabel ("Naam:"); 
    badge = new JLabel ("Badgenummer:"); 
    uren = new JLabel ("Uren"); 
    maandag = new JLabel ("Maandag"); 
    dinsdag = new JLabel ("Dinsdag"); 
    woensdag = new JLabel ("Woensdag"); 
    donderdag = new JLabel ("Donderdag"); 
    vrijdag = new JLabel ("Vrijdag"); 
    zaterdag = new JLabel ("Zaterdag"); 
    zondag = new JLabel ("Zondag"); 

    //knoppen 
    knop = new JButton ("Accept"); 
    knop.addActionListener (new knopHandler()); 

    //plaats en afmetingen 
    naam.setBounds(20, 20, 120, 20); 
    naaminvoer.setBounds(140, 20, 90, 20); 

    badge.setBounds(20, 50, 120, 20); 
    badgeinvoer.setBounds(140, 50, 90, 20); 

    uren.setBounds (190, 100, 90, 20); 

    maandag.setBounds(20, 120, 120, 20); 
    maandaginvoer.setBounds(160, 120, 90, 20); 

    dinsdag.setBounds(20, 160, 120, 20); 
    dinsdaginvoer.setBounds(160, 160, 90, 20); 

    woensdag.setBounds(20, 200, 120, 20); 
    woensdaginvoer.setBounds(160, 200, 90, 20); 

    donderdag.setBounds(20, 240, 120, 20); 
    donderdaginvoer.setBounds(160, 240, 90, 20); 

    vrijdag.setBounds(20, 280, 120, 20); 
    vrijdaginvoer.setBounds(160, 280, 90, 20); 

    zaterdag.setBounds(20, 320, 120, 20); 
    zaterdaginvoer.setBounds(160, 320, 90, 20); 

    zondag.setBounds(20, 360, 120, 20); 
    zondaginvoer.setBounds(160, 360, 90, 20); 

    knop.setBounds (100, 400, 100, 20); 

    //voeg componenten toe 
    add (naaminvoer); 
    add (badgeinvoer); 
    add (naam); 
    add (badge); 
    add (uren); 
    add (maandag); 
    add (dinsdag); 
    add (woensdag); 
    add (donderdag); 
    add (vrijdag); 
    add (zaterdag); 
    add (zondag); 
    add (maandaginvoer); 
    add (dinsdaginvoer); 
    add (woensdaginvoer); 
    add (donderdaginvoer); 
    add (vrijdaginvoer); 
    add (zaterdaginvoer); 
    add (zondaginvoer); 
    add (knop); 
} 

class knopHandler implements ActionListener 
{ 
    public void actionPerformed (ActionEvent e) 
    { 
     JFrame frame2 = new JFrame ("Total Hours"); 
     frame2.setSize (600, 500); 
     JPanel uitvoerpanel = new JPanel(); 
     frame2.setContentPane(uitvoerpanel); 
     frame2.setVisible(true); 
     String invoerstring1 = maandaginvoer.getText(); 
     int getal1 = Integer.parseInt(invoerstring1); 

     String invoerstring2 = dinsdaginvoer.getText(); 
     int getal2 = Integer.parseInt(invoerstring2); 

     String invoerstring3 = woensdaginvoer.getText(); 
     int getal3 = Integer.parseInt(invoerstring3); 

     String invoerstring4 = donderdaginvoer.getText(); 
     int getal4 = Integer.parseInt(invoerstring4); 

     String invoerstring5 = vrijdaginvoer.getText(); 
     int getal5 = Integer.parseInt(invoerstring5); 

     String invoerstring6 = zaterdaginvoer.getText(); 
     int getal6 = Integer.parseInt(invoerstring6); 

     String invoerstring7 = zondaginvoer.getText(); 
     int getal7 = Integer.parseInt(invoerstring7); 

     int resultaat = getal1 + getal2 + getal3 + getal4 + getal5 + getal6 + getal7; 





    } 
} 

class uitvoerpanel extends JPanel 

{ 
private JTextField naamvak, badgevak, totaalurenvak; 
private JLabel naam, badge, totaaluren; 

public uitvoerpanel() 
{ 
setLayout(null); 

naamvak = new JTextField (20); 
naamvak.setHorizontalAlignment (JTextField.LEFT); 
naamvak.setEditable (false); 

badgevak = new JTextField (20); 
badgevak.setHorizontalAlignment (JTextField.LEFT); 
badgevak.setEditable (false); 

totaalurenvak = new JTextField (20); 
totaalurenvak.setHorizontalAlignment (JTextField.LEFT); 
totaalurenvak.setEditable (false); 

naam = new JLabel ("Naam:"); 
badge = new JLabel ("Badgenummer:"); 
totaaluren = new JLabel ("Totaal gewerkte uren:"); 

naam.setBounds (50,50, 90, 20); 
naamvak.setBounds (160, 50, 90, 20); 

badge.setBounds (50, 90, 90, 20); 
badgevak.setBounds (160, 90, 90, 20); 

totaaluren.setBounds (50, 130, 90, 20); 
totaalurenvak.setBounds (160, 130, 90, 20); 

add (naamvak); 
add (badgevak); 
add (totaalurenvak); 
add (naam); 
add (badge); 
add (totaaluren); 
} 
} 
} 
+0

當您在此處粘貼您的代碼時,請清除您的JTextField代碼和其他您不需要的代碼,以重現此錯誤。 –

+0

謝謝你的提示,下次還會記住 –

回答

1

你的問題在於內knopHandler

JPanel uitvoerpanel = new JPanel(); 

你只是創建一個新JPanel;你實際上想創建一個新的uitvoerpanel。因爲它擴展了JPanel,你可以這樣做:

JPanel uitvoerpanel = new uitvoerpanel(); 

這將解決你提到的問題。但是,您應該知道Java naming conventions。它會讓你的代碼更容易閱讀。

+0

就是這樣!非常感謝,也爲java命名約定。將仔細看看它。 –

相關問題