能否提供一个Java编写的动态显示‘生日快乐’祝福语的代码示例?
时间: 2024-10-17 09:09:47 浏览: 35
当然可以。我们可以使用Java Swing库来创建一个简单的GUI程序,动态地显示“生日快乐”这个祝福语。首先确保已经导入了javax.swing.*包。
```java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class BirthdayGreetingApp {
private JFrame frame;
private JLabel greetingLabel;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
BirthdayGreetingApp window = new BirthdayGreetingApp();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public BirthdayGreetingApp() {
initialize();
}
private void initialize() {
// 创建一个新的窗口
frame = new JFrame("Happy Birthday!");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
// 创建一个标签来显示祝福语
greetingLabel = new JLabel("");
greetingLabel.setHorizontalAlignment(JLabel.CENTER); // 文本居中
// 添加动作监听器来改变祝福语
JButton changeButton = new JButton("Change Greeting");
changeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String currentGreeting = greetingLabel.getText();
if ("Happy Birthday!".equals(currentGreeting)) {
greetingLabel.setText("Happy Birthday to you!");
} else {
greetingLabel.setText(currentGreeting); // 重新设置为原样
}
}
});
// 将按钮和标签添加到窗体上
frame.getContentPane().add(changeButton, BorderLayout.NORTH);
frame.getContentPane().add(greetingLabel, BorderLayout.CENTER);
// 设置初始问候语
updateGreeting();
}
private void updateGreeting() {
greetingLabel.setText("Happy Birthday!");
}
}
```
在这个例子中,我们创建了一个包含一个按钮和一个标签的简单窗口。点击按钮时,标签的内容会在"Happy Birthday!"和"Happy Birthday to you!"之间切换。
运行这段代码后,你会看到一个窗口,点击"Change Greeting"按钮就会动态显示"生日快乐"的祝福语。
阅读全文