我希望我做這個權利,首先在這裏發佈。我只用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);
}
}
}
當您在此處粘貼您的代碼時,請清除您的JTextField代碼和其他您不需要的代碼,以重現此錯誤。 –
謝謝你的提示,下次還會記住 –