java簡(jiǎn)單計(jì)算器怎么帶時(shí)間顯示?
網(wǎng)絡(luò)資訊
2024-08-03 17:30
343
Java簡(jiǎn)單計(jì)算器帶時(shí)間顯示
簡(jiǎn)介
在開發(fā)一個(gè)Java簡(jiǎn)單計(jì)算器時(shí),除了基本的加減乘除功能外,添加時(shí)間顯示功能可以提升用戶體驗(yàn)。本文將介紹如何在Java中實(shí)現(xiàn)一個(gè)帶有時(shí)間顯示的簡(jiǎn)單計(jì)算器。
功能需求
- 基本的四則運(yùn)算:加、減、乘、除。
- 顯示當(dāng)前時(shí)間。
- 界面友好,操作簡(jiǎn)單。
技術(shù)選型
- Java Swing:用于構(gòu)建圖形用戶界面(GUI)。
- Java Date API:用于獲取和顯示當(dāng)前時(shí)間。
實(shí)現(xiàn)步驟
1. 創(chuàng)建Swing界面
首先,我們需要?jiǎng)?chuàng)建一個(gè)Swing界面,包括按鈕、文本框和標(biāo)簽等組件。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calculator extends JFrame {
private JTextField display;
private String lastCommand;
private double result;
public Calculator() {
setTitle("簡(jiǎn)單計(jì)算器");
setSize(400, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// 顯示時(shí)間的標(biāo)簽
JLabel timeLabel = new JLabel("時(shí)間:", SwingConstants.RIGHT);
timeLabel.setFont(new Font("Serif", Font.BOLD, 20));
add(timeLabel, BorderLayout.NORTH);
// 顯示計(jì)算結(jié)果的文本框
display = new JTextField();
display.setFont(new Font("Serif", Font.BOLD, 20));
display.setEditable(false);
add(display, BorderLayout.CENTER);
// 按鈕面板
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(5, 4));
String[] buttonLabels = {
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", ".", "=", "+"
};
for (String label : buttonLabels) {
JButton button = new JButton(label);
button.setFont(new Font("Serif", Font.BOLD, 20));
buttonPanel.add(button);
button.addActionListener(new ButtonClickListener());
}
add(buttonPanel, BorderLayout.SOUTH);
// 定時(shí)器更新時(shí)間
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateTime();
}
});
timer.start();
}
private void updateTime() {
display.setText("時(shí)間:" + new java.util.Date().toString());
}
private class ButtonClickListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
String input = button.getText();
if (input.equals("+") || input.equals("-") || input.equals("*") || input.equals("/")) {
lastCommand = input;
display.setText("");
} else if (input.equals("=")) {
calculate();
} else {
display.setText(display.getText() + input);
}
}
}
private void calculate() {
try {
double number = Double.parseDouble(display.getText());
switch (lastCommand) {
case "+":
result += number;
break;
case "-":
result -= number;
break;
case "*":
result *= number;
break;
case "/":
result /= number;
break;
}
display.setText("" + result);
} catch (NumberFormatException ex) {
display.setText("錯(cuò)誤");
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Calculator().setVisible(true);
}
});
}
}
2. 實(shí)現(xiàn)時(shí)間顯示
在上述代碼中,我們使用Timer
類創(chuàng)建了一個(gè)定時(shí)器,每隔1000毫秒(1秒)更新時(shí)間標(biāo)簽的顯示。
3. 四則運(yùn)算邏輯
通過監(jiān)聽按鈕點(diǎn)擊事件,根據(jù)用戶輸入的數(shù)字和運(yùn)算符進(jìn)行計(jì)算。
4. 運(yùn)行程序
運(yùn)行main
方法,將顯示一個(gè)包含時(shí)間顯示的簡(jiǎn)單計(jì)算器窗口。
總結(jié)
通過上述步驟,我們成功實(shí)現(xiàn)了一個(gè)帶有時(shí)間顯示的Java簡(jiǎn)單計(jì)算器。這個(gè)計(jì)算器不僅能夠進(jìn)行基本的四則運(yùn)算,還能實(shí)時(shí)顯示當(dāng)前時(shí)間,提高了用戶的使用體驗(yàn)。在實(shí)際開發(fā)中,可以根據(jù)需求進(jìn)一步擴(kuò)展功能,如添加歷史記錄、科學(xué)計(jì)算等。
注意事項(xiàng)
- 確保Java環(huán)境已正確安裝。
- 代碼中可能需要根據(jù)實(shí)際情況調(diào)整字體大小和布局。
- 異常處理在實(shí)際開發(fā)中非常重要,需要確保程序的健壯性。
標(biāo)簽:
- Java
- 計(jì)算器
- 時(shí)間顯示
- Swing
- DateAPI