2013-07-01 17 views
7

ho una domanda per quanto riguarda il confine intorno a un JDialog non decorato usando il Metal L & F.Undecorated JDialog confine

Guardate questa immagine per vedere il confine che si trova in questa finestra:

enter image description here

Sto cercando di capire come liberarmi o cambiare il colore del bordo blu attorno a molto al di fuori del JDialog. Ho guardato le impostazioni predefinite dell'interfaccia utente per il Look & Feel ma non sono riuscito a trovare nessuno che funzionasse per questo.

Qualcuno ha qualche idea su come sbarazzarsi di quel confine?

Grazie!

+0

Can mia risposta a un'altra domanda http://stackoverflow.com/a/32752359/5370194 lui lp tu? – Jun

risposta

10

È necessario cambiare la Border del pannello principale:

getRootPane(). 
    setBorder(BorderFactory.createLineBorder(Color.RED)); 
3

Si può fare qualcosa di simile:

((JPanel)getContentPane()).setBorder(BorderFactory.createLineBorder(Color.BLUE)); 

enter image description here


si può provare a fare questo al fine di modificare il bordo più outsude:

getRootPane().setBorder(BorderFactory.createLineBorder(Color.BLUE)); 

È questo cosa vuoi fare?

3

Se si vuole sbarazzarsi di esso è possibile utilizzare

frame.setUndecorated(true); 
frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE); 

Per modificare l'aspetto di essa dallo stile Java per lo stile di Windows è possibile utilizzare

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
+0

Questo non fa quello che voglio. Ho bisogno che la barra del titolo rimanga in primo piano pur avendo la cornice non decorata. L'unico modo per farlo è quello di usare l'aspetto metallico. Impostando lo stile di decorazione della finestra su nessuno si elimina la barra del titolo nella parte superiore. – Mark