Sto imparando Java e ho provato a realizzare una prima applicazione grafica, questa:
codice:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
public class DFrame extends JFrame {
private int numero;
private int numerodoppio;
private JButton calcola = new JButton("Calcola");
private JTextField textFieldnum = new JTextField(2);
private JTextField textFielddop = new JTextField(3);
private JLabel
lNum = new JLabel("Numero ",JLabel.RIGHT),
lDoppio = new JLabel("Doppio ",JLabel.RIGHT);
private JPanel
input = new JPanel(),
output = new JPanel(),
pulsanti = new JPanel();
public DFrame(){
setTitle("Doppio");
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container cp=getContentPane();//cp è il contenitore generale degli altri pannelli
input.setLayout(new FlowLayout());//Imposta il tipo di modello grafico
input.add(lNum);
input.add(textFieldnum);
output.setLayout(new FlowLayout());//Imposta il tipo di modello grafico
output.add(lDoppio);
output.add(textFielddop);
pulsanti.setLayout(new BorderLayout());
pulsanti.add(calcola, BorderLayout.CENTER);
input.setBackground(Color.yellow);
output.setBackground(Color.green);
cp.setLayout(new BorderLayout());
cp.add(input, BorderLayout.EAST);
cp.add(output, BorderLayout.WEST);
cp.add(pulsanti, BorderLayout.SOUTH);
textFieldnum.addActionListener(new LeggiNumero());
calcola.addActionListener(new CalcolaDoppio());
pack();//Assegna le dimensioni minime alla finestra per contenere tutti gli elementi
}
class LeggiNumero implements ActionListener{
public void actionPerformed(ActionEvent e){
numero=Integer.parseInt(textFieldnum.getText());
}
}
class CalcolaDoppio implements ActionListener{
public void actionPerformed(ActionEvent e){
Doppio doppio = new Doppio(numero);
numerodoppio=doppio.getDoppio();
textFielddop.setText(String.valueOf(numerodoppio));
}
}
}
che utilizza questo Main:
codice:
import java.awt.*;
public class Main {
public static void main (String args[]) {
DFrame finestra = new DFrame();
Toolkit kit = finestra.getToolkit();
Dimension dim = kit.getScreenSize();
finestra.setBounds(dim.width/4, dim.height/4, dim.width/4, dim.height/4);
finestra.setVisible(true);
}
}
e questa classe:
codice:
class Doppio {
private int numero;
public Doppio (int numero){
this.numero=numero;
}
public int getDoppio (){
return(numero*2);
}
}
Ho compilato questi file tramite la IDE Geany su Ubuntu 10.04. Tutto viene compilato ma quando premo il pulsante calcola, invece che il doppio del numero inserito (che è l'obbiettivo del programma), mi appare 0. Sapreste per favore dirmi dove può essere l'errore?
Grazie