下载地址:www.wenshushu.vip/download.ph…
代码特点:
- 使用Java Swing实现图形界面
- 支持五大银行选择功能
- 包含余额输入验证逻辑
- 生成操作日志记录
Java实现银行界面模拟器(基础框架)
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.text.SimpleDateFormat;
import java.util.Date;
public class BankSimulator extends JFrame {
private JTextField balanceField;
private JComboBox<String> bankSelector;
private JTextArea logArea;
public BankSimulator() {
setTitle("银行余额模拟器(技术演示)");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 银行选择下拉框
String[] banks = {"建设银行", "农业银行", "工商银行", "招商银行", "邮政储蓄"};
bankSelector = new JComboBox<>(banks);
// 余额输入区域
JPanel inputPanel = new JPanel(new GridLayout(3, 2));
inputPanel.add(new JLabel("选择银行:"));
inputPanel.add(bankSelector);
inputPanel.add(new JLabel("设置余额:"));
balanceField = new JTextField("0.00");
inputPanel.add(balanceField);
// 操作按钮
JButton generateBtn = new JButton("生成截图");
generateBtn.addActionListener(this::generateScreenshot);
// 日志区域
logArea = new JTextArea();
logArea.setEditable(false);
// 主布局
setLayout(new BorderLayout());
add(inputPanel, BorderLayout.NORTH);
add(generateBtn, BorderLayout.CENTER);
add(new JScrollPane(logArea), BorderLayout.SOUTH);
}
private void generateScreenshot(ActionEvent e) {
String bank = (String) bankSelector.getSelectedItem();
String balance = balanceField.getText();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
logArea.append(String.format(
"[%s] 已生成 %s 余额截图: ¥%s\n",
sdf.format(new Date()),
bank,
balance
));
JOptionPane.showMessageDialog(this,
"模拟截图生成完成(仅技术演示)\n" +
"银行: " + bank + "\n" +
"余额: " + balance,
"提示",
JOptionPane.INFORMATION_MESSAGE);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
BankSimulator simulator = new BankSimulator();
simulator.setVisible(true);
});
}
}
Android版余额生成器核心逻辑
public class BalanceGenerator {
private static final Map<String, Integer> BANK_BG = new HashMap<String, Integer>() {{
put("ICBC", R.drawable.icbc_bg); // 工商银行
put("ABC", R.drawable.abc_bg); // 农业银行
put("CCB", R.drawable.ccb_bg); // 建设银行
put("CMB", R.drawable.cmb_bg); // 招商银行
put("PSBC", R.drawable.psbc_bg); // 邮政储蓄
}};
public Bitmap generateBalanceScreenshot(String bankCode, String amount) {
// 1. 加载对应银行背景模板
Bitmap template = BitmapFactory.decodeResource(
getResources(),
BANK_BG.get(bankCode)
);
// 2. 创建画布
Bitmap result = template.copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(result);
// 3. 绘制金额文本
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setTextSize(48);
paint.setTypeface(Typeface.DEFAULT_BOLD);
Rect bounds = new Rect();
paint.getTextBounds(amount, 0, amount.length(), bounds);
// 计算居中位置(示例坐标)
float x = template.getWidth() / 2f - bounds.width() / 2f;
float y = 320; // 根据实际模板调整
canvas.drawText(amount, x, y, paint);
// 4. 添加时间水印
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String timestamp = sdf.format(new Date());
paint.setTextSize(24);
canvas.drawText(timestamp, 20, template.getHeight() - 30, paint);
return result;
}
}