Загрузка данных
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class BankMenu extends JFrame {
public BankMenu() {
setTitle("Банк");
setSize(700, 500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(null);
getContentPane().setBackground(new Color(20, 30, 50));
JLabel title = new JLabel("БАНКОВСКОЕ ПРИЛОЖЕНИЕ");
title.setBounds(170, 30, 400, 40);
title.setForeground(Color.WHITE);
title.setFont(new Font("Arial", Font.BOLD, 28));
add(title);
JButton accountsBtn = createButton("СЧЕТА", 220, 120);
JButton cardsBtn = createButton("КАРТЫ", 220, 210);
JButton creditsBtn = createButton("КРЕДИТЫ", 220, 300);
add(accountsBtn);
add(cardsBtn);
add(creditsBtn);
accountsBtn.addActionListener(e ->
new CategoryFrame(
"Счета",
new String[]{
"Дебетовый счет - Оплата покупок",
"Сберегательный счет - 5% годовых",
"Валютный счет - Доллары и евро"
}
));
cardsBtn.addActionListener(e ->
new CategoryFrame(
"Карты",
new String[]{
"Зарплатная карта - Бесплатно",
"Виртуальная карта - Онлайн покупки",
"Премиальная карта - Кэшбэк"
}
));
creditsBtn.addActionListener(e ->
new CategoryFrame(
"Кредиты",
new String[]{
"Ипотека - 12% на 20 лет",
"Автокредит - 10% на 5 лет",
"Потребительский - 15%"
}
));
setVisible(true);
}
JButton createButton(String text, int x, int y) {
JButton btn = new JButton(text);
btn.setBounds(x, y, 250, 50);
btn.setBackground(new Color(0, 120, 215));
btn.setForeground(Color.WHITE);
btn.setFont(new Font("Arial", Font.BOLD, 18));
btn.setFocusPainted(false);
return btn;
}
public static void main(String[] args) {
new BankMenu();
}
}
class CategoryFrame extends JFrame {
public CategoryFrame(String titleText, String[] services) {
setTitle(titleText);
setSize(700, 500);
setLocationRelativeTo(null);
setLayout(null);
getContentPane().setBackground(new Color(240, 240, 240));
JLabel title = new JLabel(titleText);
title.setBounds(280, 20, 300, 40);
title.setFont(new Font("Arial", Font.BOLD, 26));
add(title);
int y = 90;
for(String service : services) {
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBounds(80, y, 520, 80);
panel.setBackground(Color.WHITE);
panel.setBorder(BorderFactory.createLineBorder(Color.GRAY));
JLabel label = new JLabel(service);
label.setBounds(20, 10, 320, 30);
label.setFont(new Font("Arial", Font.PLAIN, 16));
JButton favBtn = new JButton("★ Избранное");
favBtn.setBounds(340, 20, 150, 35);
favBtn.setBackground(new Color(255, 200, 0));
favBtn.setFont(new Font("Arial", Font.BOLD, 14));
favBtn.addActionListener(e -> saveFavorite(service));
panel.add(label);
panel.add(favBtn);
add(panel);
y += 100;
}
setVisible(true);
}
private void saveFavorite(String service) {
try {
File file = new File("favorites.txt");
int count = 0;
if(file.exists()) {
BufferedReader br =
new BufferedReader(
new FileReader(file));
String line = br.readLine();
if(line != null) {
count = Integer.parseInt(line);
}
br.close();
}
count++;
BufferedWriter bw =
new BufferedWriter(
new FileWriter(file));
bw.write(String.valueOf(count));
bw.close();
JOptionPane.showMessageDialog(
this,
service +
"\nДобавлено в избранное!" +
"\nВсего избранных: " + count
);
} catch(Exception e) {
JOptionPane.showMessageDialog(
this,
"Ошибка файла"
);
}
}
}