Allora siccome non sono pratico della programmazione di gui mi sono aiutato tramite il jformdesigner che mi ha autogenerato il codice per inserire i vari bottoni e generare il layout, quindi poi aggiungo io quello che mi serve. Non ha generato il main, il che effettivamente potrebbe essere molto strano, però vedo che con eclipse dando run as javabean esegue il tutto. Infatti un mio problema sarebbe quello di riuscire ad eseguire il tutto tramite il comando java che chiaramente mi da errore perchè non trova la definizione del main.
Aggiungo per sommi capi il codice
codice:
public class panne extends JPanel {
public static final int NUMEL = 10;
public panne() {
initComponents();
}
//abbozzo della funzione di disegno
public void disegna(Graphics g){
g.drawRect(x, y, width, height);
}
private void button1MouseClicked(MouseEvent e) {
if (counter < NUMEL - 1) {
//faccio alcune cose semplici su classi mie e incremento il contatore
}
else{
textField1.setVisible(false);
button1.setVisible(false);
this.remove(textField1);
//qui vorrei chiamare la funzione che mi disegni una sorta di istogramma
//pensando di farla così
disegna(this.getGraphics());
}}
private void initComponents() {
textField1 = new JTextField();
button1 = new JButton();
//inizializzo le varie classi mie
setBorder(new javax.swing.border.CompoundBorder(
new javax.swing.border.TitledBorder(
new javax.swing.border.EmptyBorder(0, 0, 0, 0),
"Prova",
javax.swing.border.TitledBorder.CENTER,
javax.swing.border.TitledBorder.BOTTOM,
new java.awt.Font("Dialog", java.awt.Font.BOLD, 12),
java.awt.Color.red), getBorder()));
addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent e) {
if ("border".equals(e.getPropertyName()))
throw new RuntimeException();
}
});
setLayout(null);
// ---- textField1 ----
textField1.setFont(new Font("SansSerif", Font.BOLD, 16));
textField1.setForeground(Color.blue);
add(textField1);
textField1
.setBounds(85, 185, 310, textField1.getPreferredSize().height);
// ---- button1 ----
button1.setText("Bottone1");
button1.setBackground(new Color(51, 51, 255));
button1.setForeground(Color.white);
button1.setFont(new Font("SansSerif", Font.PLAIN, 16));
button1.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
button1MouseClicked(e);
}
});
add(button1);
button1.setBounds(565, 50, 225, button1.getPreferredSize().height);
}
private JTextField textField1;
private JButton button1;
}
Quello che succede è che una volta disegnato non appena muovo la finestra e la ridimensiono il disegno scompare, probabilmente non sto usando la modalità corretta di disegno. Comunque può andare eventualmente un uso così del singolo JPanel?
Cmq grazie anticipatamente. Ciao