Ecco il codice incriminato:
codice:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestFinestra {
public static void main(String[] args){
JFrame frame = new JFrame("Hello Swing");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
JPanel panel = new JPanel();
frame.add(panel);
JButton button = new JButton("Click here");
button.setSize(400,100);
panel.add(button);
button.addActionListener(new Action());
}
static class Action implements ActionListener{
public void actionPerformed (ActionEvent e) {
JFrame frame2 = new JFrame("clicked");
frame2.setVisible(true);
frame2.setSize(300,300);
JLabel label = new JLabel ("You clicked me");
JPanel panel = new JPanel();
frame2.add(panel);
panel.add(label);
}
}
}
Il problema e' che quando lo lancio il bottone a volte prende le dimensioni che gli ho passato button.setSize(400,100); a volte invece auto imposta la grandezza al minimo indispensabile per contenere il testo del bottone.
Se rimuovo il comando (setSize()
, invece, le volte che non lo dimensiona da solo alla grandezza minima indispensabile non appare proprio il bottone!
Ha un qualche senso tutto cio'?