ho questo problema:
ho la mia applicazione grafica, creo una finestra e poi voglio disegnare un pannello son sfondo bianco e alcuni pulsanti/label sopra..
quindi finita la creazione della finestra faccio:
dove in pratica label mi gestisce tutte le label...poi graph è un pannello bianco che aggiungo al mio frame...e funziona tutto correttamentecodice:JLabel end_bottom = new JLabel ("End"); end_bottom.setBounds(670, 510, 50, 20); this.add(end_bottom);label.add(end_bottom); bianco = new JPanel(); bianco.setBounds(150, 10, 800, 600); bianco .setBackground(Color.WHITE); this.add(bianco);
poi ho delle funzioni che mi stampano nuovi oggetti in bsae a determinati eventi...per esempio ho un tasto che mi elimina tutti gli elementi presente nel pannello bianco:
dove in pratica...rimuovo il pannello bianco...rimuovo tutti i pulsanti, le label e le lineecodice:public void remove_all() { this.remove(bianco); for (int i=0;i<button.total();i++){ MyButton temp = button.get(i); this.remove(temp); } for (int i=0;i<label.total();i++){ JLabel temp = label.get(i); this.remove(temp); } this.remove(lines); this.repaint(); }
e funziona tutto...poi ho una procedura identica al contrario che riscrive tutto e funziona correttamente
il mio problema però è che ho questa funzione:
dove quindi...creo 3 button...setto le varie dimensioni...setto le varie azioni x i pulsanti..poi li aggiungo alla finestra...e faccio repaint...solo che non funziona...o megliocodice:private void add_buttons(String code, int type){ MyButton alto = new MyButton(num_button,2); num_button++; alto.setBounds(210, 491, 10, 10); alto.addActionListener(connectActionInput); this.add(alto);button.add(alto); MyButton input_output = new MyButton(num_button,type); num_button++; input_output.set_param(code); input_output.setBounds(175,500, 80, 20); input_output.setSelected(true); if (type==0) input_output.setText("Input"); else input_output.setText("Output"); if (type==0) input_output.setBackground(Color.GREEN); else input_output.setBackground(Color.YELLOW); this.add(input_output); button.add(input_output); input_output.addActionListener(inputAction1); MyButton down = new MyButton(num_button,2); num_button++; down.setBounds(210, 519, 10, 10); down.addActionListener(connectActionOutput); down.setVisible(true); this.add(down);button.add(down); this.repaint(); }
sul pannello non compare nulla...ma se passo con il mouse sopra alla posizione dove dovrebbero stare questi 3 pulsanti compaiono magicamente!!!! oppure se uso la procedura di prima...e poi la sua inversa (cioè tolgo tutto e poi rimetto) compaiono nuovamente magicamente
secondo voi perchè non compaiono subito? cioè perchè devo passare sopra con il mouse x visualizzarli? dove sbaglio? ho provato in tanti modi...tipo rimuovere tutto...aggiungere i 3 pulsanti e aggiungere la roba vecchia...ma è sempre uguale..

Rispondi quotando