Вывод через JButton - Java
Формулировка задачи:
Здравствуйте уважаемые знатоки. Совсем недавно начал изучать Java и выполняя одно из тестовых заданий задумался, почему бы не попробовать сделать форму с кнопками для вывода результатов, но никак не могу не понять как присвоить кнопке значение(переменную), которое было результатом в другом классе этой программы. Т.Е. я понимаю, что нужно унаследовать эту переменную в классе с кнопкой, но не могу понять что именно наследовать.Вот сам код из него нужно вывести на разные кнопки сумму и полностью массив.
А вот мои попытки привязать хотя б суму к нопке и вывести в label. Но постоянно выдает ошибки.
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));
}
}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
Листинг программы
Т.Е. я понимаю, что нужно унаследовать эту переменную в классе с кнопкой, но не могу понять что именно наследовать.