Вывод через JButton - Java

Узнай цену своей работы

Формулировка задачи:

Здравствуйте уважаемые знатоки. Совсем недавно начал изучать Java и выполняя одно из тестовых заданий задумался, почему бы не попробовать сделать форму с кнопками для вывода результатов, но никак не могу не понять как присвоить кнопке значение(переменную), которое было результатом в другом классе этой программы. Т.Е. я понимаю, что нужно унаследовать эту переменную в классе с кнопкой, но не могу понять что именно наследовать.
import java.lang.*;
public class Bank {
    
    String name;
    double capital;
    boolean hasBank;
    
    public Bank() {
        name = "SumyCentralBank";
        capital = 50000.76d;
        hasBank = true;
    }
    
    public Bank(String name, double capital, boolean hasBank) {
        this.name = name;
        this.capital = capital;
        this.hasBank = hasBank;
    }
    
    @Override
    public String toString(){
        if(this.hasBank)
            return ("Имя банка: "+ this.name +". Капитал банка: "+ this.capital +". Наличие банкоматов: да");
        else
            return ("Имя банка: "+ this.name +". Капитал банка: "+ this.capital +". Наличие банкоматов: нет");

    }
    
    public double suma(Bank[] user_banks) {
        double sum = 0;
        for(int i=0; i< user_banks.length; i++){
            sum += user_banks[i].capital;
        }
        return sum;
    }

    public static void main(String[] args) {
        Bank[] user_banks = new Bank[10];
        user_banks[0] = new Bank("Приват Банк", 2500000, true );
        user_banks[1] = new Bank("Брокбізнес Банк",100000 ,false);
        user_banks[2] = new Bank("Банк Фінанси та кредит",12000 ,false);
        user_banks[3] = new Bank("Укрсиббанк",200000 ,true);
        user_banks[4] = new Bank("Сбербанк",100000 ,true);
        user_banks[5] = new Bank("Пумб",300000 ,true);
        user_banks[6] = new Bank("Надра",0 ,false);
        user_banks[7] = new Bank("Аваль", 1500000,true);
        user_banks[8] = new Bank("Ощадбанк",1000000 ,false);
        user_banks[9] = new Bank("Південний",10000 ,true);
        for(int i = 0; i < user_banks.length; i++) {
            System.out.println(user_banks[i].toString());
            System.out.println("\n");
        }
        System.out.println(user_banks[0].suma(user_banks));
    }
}
Вот сам код из него нужно вывести на разные кнопки сумму и полностью массив. А вот мои попытки привязать хотя б суму к нопке и вывести в label.
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
 
public class Bank {
 
 String name;
    double capital;
    boolean hasBank;
    
    public Bank() {
        name = "SumyCentralBank";
        capital = 50000.76d;
        hasBank = true;
    }
    
    public Bank(String name, double capital, boolean hasBank) {
        this.name = name;
        this.capital = capital;
        this.hasBank = hasBank;
    }
    
    @Override
    public String toString(){
        if(this.hasBank)
            return ("Im9: "+ this.name +". Capital: "+ this.capital +". Nali4ie: da");
        else
            return ("Im9: "+ this.name +". Capital: "+ this.capital +". Nali4ie: net");

    }
    
    public double suma(Bank[] user_banks) {
        double sum = 0;
        for(int i=0; i< user_banks.length; i++){
            sum += user_banks[i].capital;
        }
        return sum;
    }
    public static void main(String[] args) {
    
     Bank[] user_banks = new Bank[10];
        user_banks[0] = new Bank("Приват Банк", 2500000, true );
        user_banks[1] = new Bank("Брокбізнес Банк",100000 ,false);
        user_banks[2] = new Bank("Банк Фінанси та кредит",12000 ,false);
        user_banks[3] = new Bank("Укрсиббанк",200000 ,true);
        user_banks[4] = new Bank("Сбербанк",100000 ,true);
        user_banks[5] = new Bank("Пумб",300000 ,true);
        user_banks[6] = new Bank("Надра",0 ,false);
        user_banks[7] = new Bank("Аваль", 1500000,true);
        user_banks[8] = new Bank("Ощадбанк",1000000 ,false);
        user_banks[9] = new Bank("Південний",10000 ,true);
        for(int i = 0; i < user_banks.length; i++) {
            System.out.println(user_banks[i].toString());
            System.out.println("\n");
        }
        System.out.println(user_banks[0].suma(user_banks));

     ButtonFrame frame = new ButtonFrame();
     frame.setSize(300, 100);
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setVisible(true);
    }
}
 
class ButtonFrame extends JFrame{
   Bank sum = new Bank sum();
    JLabel label=new JLabel();

  ButtonFrame(){
    
    JButton button = new JButton("Button 1");;
 
    button.addActionListener(new ActionListener( ) {
      public void actionPerformed(ActionEvent ae) {
 
          label.setText("Сумма: "+ sum);
      }  
    }); 
 
    setLayout(new FlowLayout( ));
    add(button);
    add(label);
    }
}
Но постоянно выдает ошибки.
C:\Program Files\Java\jdk1.8.0_65\bin>javac Bank.java
Bank.java:72: error: '(' or '[' expected
   Bank sum = new Bank sum();
                       ^
Bank.java:72: error: illegal start of type
   Bank sum = new Bank sum();
                          ^
Bank.java:72: error: <identifier> expected
   Bank sum = new Bank sum();
                           ^
3 errors

Решение задачи: «Вывод через JButton»

textual
Листинг программы
Т.Е. я понимаю, что нужно унаследовать эту переменную в классе с кнопкой, но не могу понять что именно наследовать.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5