Aggiungere un widget SWT ad uno swing JPanel
Domanda
Capisco che questo possono è impossibile, ma vorrei sicuro piacerebbe sapere se qualcuno ha compiuto questo, o di avere un work-around.
Ho un pulsante di SWT e Sono voler sovrascrivere il contenuto di un JPanel esistenti con l'essere presente solo il pulsante. La mia strategia attuale è quella di avere il pulsante SWT come un campo nullo iniziale e poi impostarlo attraverso un metodo, che aggiorna la JPanel con il pulsante SWT.
Button ibutton = null;
Il seguente è tratto dal mio costruttore (classe extends JPanel
):
ibutton.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
switch (e.type) {
case SWT.Selection:
}
}
});
add(ibutton); //add is the usual swing assignment function
// and thus does not work.
Se non v'è un altro mezzo per raggiungere questo obiettivo, sarei più che grato di sentire quello che hai.
Soluzione
Si deve fare qualcosa di simile:
Canvas canv = new Canvas();
add(canv);//add to ur parent container
Shell shell = SWT_AWT.new_Shell(display, canv);
shell.add(ibutton);
Ci sono i seguenti punti da notare, dal momento che ti sembra di essere una novità per il ponte SWT_AWT:
- Il genitore avrebbe dovuto essere visualizzato (peer deve essere creato) per il momento il codice di cui sopra si chiama.
- Un filo parallelo dovrebbe essere la lettura e l'invio di eventi dal display.