package myaccount;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.TextArea;
import java.awt.event.TextEvent;
//0831知道如何使用傾聽者及自動作加減,還有能自己創造出格子出來
//20200719 建立起一個搜尋框能將收入與支出的結果自動做加減
//20200719 最後用valueOf的方式成功解決算不出總預算的問題
class TryAdmin extends JFrame{
// 此視窗所用到的元件
JPanel panel, inPanel, outPanel;
JLabel inputFieldLabel, outputFieldLabel;
JTextField
//收入 income=收入,change=可動資金,savings=儲蓄
incomeField,changeField,savingsField
//支出 meals=三餐,meals_day=三餐天數,rent=房租,存錢=savemoney,airtime=通話費,
// transportation=交通費
, mealsField,meals_dayField2,FieldField,savemoney,airtime,transportation
//結果
,outputField3;
JButton inputButton,inputButton2;
public TryAdmin() {
super("678");//為什麼子類別可以繼承這個範例?這範例從哪來的?
GoGo();
}
// 元件相關設置
public void GoGo() {
panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
////BoxLayout是讓物件保持水平或垂直平行對齊的語法
inPanel = new JPanel();
outPanel = new JPanel();
inputFieldLabel = new JLabel("輸入文字");
incomeField = new JTextField("輸入1");
incomeField.addActionListener(new inputFieldActionListener()); // 要將事件處理加入
changeField = new JTextField("輸入2");
changeField.addActionListener(new inputFieldActionListener());
inputButton = new JButton("確定");
inputButton.addActionListener(new inputButtonActionListener()); // 要將事件處理加入
inputButton2 = new JButton("確定");
inputButton2.addActionListener(new inputButtonActionListener()); // 要將事件處理加入
outputFieldLabel = new JLabel("輸出文字");
mealsField = new JTextField("輸出1");
mealsField.addActionListener(new outputFieldActionListener());
meals_dayField2 = new JTextField("輸出2");
meals_dayField2.addActionListener(new outputFieldActionListener());
outputField3 = new JTextField("總輸出");
inPanel.add(inputFieldLabel);
inPanel.add(incomeField);
inPanel.add(changeField);
inPanel.add(inputButton);
inPanel.add(inputButton2);
outPanel.add(outputFieldLabel);
outPanel.add(mealsField);
outPanel.add(meals_dayField2);
outPanel.add(outputField3);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 800);
this.getContentPane().setLayout(new GridLayout(2,4));
this.add(inputFieldLabel);
this.add(incomeField);
this.add(mealsField);
this.add(inputButton);
this.add(changeField);
this.add(meals_dayField2);
this.add(outputField3);
this.add(inputButton2);
this.setVisible(true);
}
// inputField的事件處理
private class inputFieldActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
changeOutputText();
}
}
// inputButton的事件處理
private class inputButtonActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
changeOutputText();
}
}
private class InputFieldStr2ActionListener implements ActionListener {
public void actionPerformed(ActionEvent e){
changeOutputText();
}
}
private class inputButton2ActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
changeOutputText();
}
}
// 總預算相加
private class outputFieldActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
changeOutputText();
}
}
private class outputField2ActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
changeOutputText();
}
}
public void changeOutputText() {
String input_field_str = incomeField.getText();
mealsField.setText(input_field_str);
String InputFieldStr2 = changeField.getText();
meals_dayField2.setText(InputFieldStr2);
String outputField_str = mealsField.getText();
int afterfield = Integer.valueOf(outputField_str);
afterfield = Integer.parseInt(outputField_str);
String outputField2_str = meals_dayField2.getText();
int afterfield2 = Integer.valueOf(outputField2_str);
afterfield2 = Integer.parseInt(outputField2_str);
int afterfield3 = afterfield +afterfield2;
String answer = String.valueOf(afterfield3);
outputField3.setText(answer);
}
public static void main(String[] args) {
TryAdmin app = new TryAdmin();
}
}
留言列表