我正在製作一個調用三個面板的面板項目。第一個面板包含所有信息,另外兩個面板是我按下按鈕時打開的面板。它是如何工作的,我打電話給第一個面板,按下按鈕,打開第二個面板。然後在第二個面板中插入一個密碼。如果這是正確的,則會打開第三個面板。我需要將第一個面板的值調入第三個面板。我知道如何使用構造函數,訪問器和增變器,但是我需要的值是在按下按鈕時在事件中生成的。我正試圖弄清楚如何從事件中將這些值調入第三個面板。基本上,這些值是計劃期間所有交易的計數器,小計,稅金和總計。這是我的代碼。Java - GUI:將值從幀傳遞到另一個
主類:
import javax.swing.*;
public class AppleRegister {
public static void main(String[] args)
{
double subTotalp2 = 0, taxP2 = 0, realTotalp2 = 0;
JFrame frame = new JFrame("Apple Crazy Cola Cash (Apple IIC) Register");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
AppleRegisterPanel panel = new AppleRegisterPanel
(subTotalp2, taxP2, realTotalp2);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
第一屏:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.DecimalFormat;
public class AppleRegisterPanel extends JPanel
{
private JButton button1, button2, button3, button4, button5, button6;
private JLabel label1, label2, label3, label4, label5, label6, label7;
private JTextField text, text1, text2, text3, text4, text5, text6, text7, text8;
private JTextArea area ;
private JPanel panel, panel2, panel3, panel4;
private int counter, counter2, counter3, counter4, counterp21, counterp22,
counterp23, counterp24;
private String string;
private final double MD_TAX = 0.06;
private double subTotal, realTotal, tax, subTotalp2, realTotalp2, taxP2;
private double num100, num50, num20, num10, num5, num1, num25cents, num10cents,
num5cents, num1cents;
public AppleRegisterPanel(double subTotalp2, double taxP2, double realTotalp2)
{
this.subTotalp2 = subTotalp2;
this.taxP2 = taxP2;
this.realTotalp2 = realTotalp2;
setLayout(new BorderLayout());
text = new JTextField(10);
text1 = new JTextField(5);
text2 = new JTextField(5);
text3 = new JTextField(5);
text4 = new JTextField(5);
text5 = new JTextField(10);
text6 = new JTextField(10);
text7 = new JTextField(10);
text8 = new JTextField(10);
area = new JTextArea();
button1 = new JButton("Child");
button2 = new JButton("Medium");
button3 = new JButton("Large");
button4 = new JButton("Ex Large");
button5 = new JButton("Close Out Register");
button6 = new JButton("Complete Transaction");
panel = new JPanel();
panel.setPreferredSize(new Dimension(240,250));
panel.setBackground(Color.cyan);
add(panel, BorderLayout.WEST);
panel.add(button1);
button1.addActionListener(new TempListener2());
panel.add(text1);
panel.add(Box.createRigidArea(new Dimension(0,20)));
panel.add(button2);
button2.addActionListener(new TempListener2());
panel.add(text2);
panel.add(Box.createRigidArea(new Dimension(0,20)));
panel.add(button3);
button3.addActionListener(new TempListener2());
panel.add(text3);
panel.add(Box.createRigidArea(new Dimension(0,20)));
panel.add(button4);
button4.addActionListener(new TempListener2());
panel.add(text4);
panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
panel2 = new JPanel();
label6 = new JLabel("Change");
panel2.setPreferredSize(new Dimension(270,250));
panel2.setBackground(Color.cyan);
add(panel2, BorderLayout.EAST);
panel2.add(button5);
button5.addActionListener(new TempListener());
panel2.add(label6);
panel2.add(area);
panel2.add(button6);
button6.addActionListener(new TempListener1());
panel2.setLayout(new BoxLayout(panel2, BoxLayout.Y_AXIS));
panel3 = new JPanel();
label1 = new JLabel("Apple Crazy Cola Cash (Apple IIC) Register ");
label7 = new JLabel(" By Robert Burns");
panel3.setPreferredSize(new Dimension(50,50));
panel3.setBackground(Color.cyan);
add(panel3, BorderLayout.NORTH);
panel3.add(label1);
panel3.add(label7);
panel4 = new JPanel();
label1 = new JLabel("Sub-Total");
label2 = new JLabel("Tax");
label3 = new JLabel("Total");
label4 = new JLabel("Payment");
label5 = new JLabel("Change Owed");
panel4.setPreferredSize(new Dimension(140,250));
panel4.setBackground(Color.cyan);
add(panel4, BorderLayout.CENTER);
panel4.add(label1);
panel4.add(text);
panel4.add(label2);
panel4.add(text5);
panel4.add(label3);
panel4.add(text6);
panel4.add(label4);
panel4.add(text7);
text7.addActionListener(new TempListener3());
panel4.add(label5);
panel4.add(text8);
}
private class TempListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
if (event.getSource() == button5)
{
JFrame frame3 = new JFrame("Apple Crazy Cola Cash (Apple
IIC) Register");
frame3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
AppleRegisterPanel3 panel = new AppleRegisterPanel3();
frame3.getContentPane().add(panel);
frame3.pack();
frame3.setVisible(true);
}
}
}
private class TempListener1 implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
if (event.getSource() == button6)
{
counter = 0;
text1.setText(Integer.toString(counter));
counter2 = 0;
text2.setText(Integer.toString(counter2));
counter3 = 0;
text3.setText(Integer.toString(counter3));
counter4 = 0;
text4.setText(Integer.toString(counter4));
subTotal = 0;
text.setText(Double.toString(subTotal));
tax = 0;
text5.setText(Double.toString(tax));
realTotal = 0;
text6.setText(Double.toString(realTotal));
text7.setText("");
text8.setText("");
}
}
}
private class TempListener2 implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
DecimalFormat df = new DecimalFormat("#.##");
if (event.getSource() == button1)
{
counter++;
string = text1.getText();
text1.setText(Integer.toString(counter));
subTotal += counter * 0.90;
string = text.getText();
text.setText(df.format(subTotal));
tax += subTotal * MD_TAX;
string = text5.getText();
text5.setText(df.format(tax));
realTotal += subTotal + tax;
string = text6.getText();
text6.setText(df.format(realTotal));
counterp21++;
subTotalp2 += counterp21 * 0.90;
taxP2 += subTotalp2 * MD_TAX;
realTotalp2 += subTotalp2 * taxP2;
}
if (event.getSource() == button2)
{
counter2++;
string = text2.getText();
text2.setText(Integer.toString(counter2));
subTotal += counter2 * 1.40;
string = text.getText();
text.setText(df.format(subTotal));
tax += subTotal * MD_TAX;
string = text5.getText();
text5.setText(df.format(tax));
realTotal += subTotal + tax;
string = text6.getText();
text6.setText(df.format(realTotal));
counterp22++;
subTotalp2 += counterp22 * 1.40;
taxP2 += subTotalp2 * MD_TAX;
realTotalp2 += subTotalp2 * taxP2;
}
if (event.getSource() == button3)
{
counter3++;
string = text3.getText();
text3.setText(Integer.toString(counter3));
subTotal += counter3 * 1.75;
string = text.getText();
text.setText(df.format(subTotal));
tax += subTotal * MD_TAX;
string = text5.getText();
text5.setText(df.format(tax));
realTotal += subTotal + tax;
string = text6.getText();
text6.setText(df.format(realTotal));
counterp23++;
subTotalp2 += counterp23 * 1.75;
taxP2 += subTotalp2 * MD_TAX;
realTotalp2 += subTotalp2 * taxP2;
}
if (event.getSource() == button4)
{
counter4++;
string = text4.getText();
text4.setText(Integer.toString(counter4));
subTotal += counter4 * 2.00;
string = text.getText();
text.setText(df.format(subTotal));
tax += subTotal * MD_TAX;
string = text5.getText();
text5.setText(df.format(tax));
realTotal += subTotal + tax;
string = text6.getText();
text6.setText(df.format(realTotal));
counterp24++;
subTotalp2 += counterp24 * 2.00;
taxP2 += subTotalp2 * MD_TAX;
realTotalp2 += subTotalp2 * taxP2;
}
}
}
如果向下滾動到TempListner2,看到變量subTotalp2,taxP2,realTotalp2;那些是我需要繼續的變量。你會看到我讓構造函數中有這些變量,所以我可以在第三個面板中調用方法,但是沒有骰子。當我打開第三個面板時出現0.0。不確定是否因爲它在無效事件中。我將在這裏張貼第三個面板的一部分,我試圖從第一個面板調用構造函數,並將這些值插入到第三個面板中。
第三小組:
public AppleRegisterPanel2()
{
AppleRegisterPanel p = new AppleRegisterPanel(subTotalp2, taxP2,
realTotalp2);
this.subTotalp2 = subTotalp2;
this.taxP2 = taxP2;
this.realTotalp2 = realTotalp2;
subTotalp2 = p.getSubTotal();
taxP2 = p.getTax();
realTotalp2 = p.getTotal();
你會看到這裏,我想一個奇怪的屁股的方式來調用值。
[標籤:java描述]標籤移除 - 我看不到這個問題如何有什麼用JavaScript - 你爲什麼要添加這個誤導標籤? –
因爲我不知道這是誤導。我對此仍然陌生。抱歉。 – user3443047