Ho bisogno di progettare questa barra di scorrimento per tutti i miei scrollpanes:Design personalizzato JScollPane Java Swing
Con Java Swing. Sto usando Netbeans IDE. Qual è la soluzione più semplice?
Grazie mille.
saluti
Ho bisogno di progettare questa barra di scorrimento per tutti i miei scrollpanes:Design personalizzato JScollPane Java Swing
Con Java Swing. Sto usando Netbeans IDE. Qual è la soluzione più semplice?
Grazie mille.
saluti
È possibile personalizzare l'aspetto di un componente Swing di impostando un'interfaccia utente personalizzata. Nel caso di una barra di scorrimento riquadro di scorrimento, si fa
scrollPane.getVerticalScrollBar().setUI(new MyScrollBarUI());
dove MyScrollBarUI
è derivato da javax.swing.plaf.basic.BasicScrollBarUI
. Per fare questo per tutte le barre di scorrimento (non solo in JScrollPane
casi), chiamare
UIManager.put("ScrollBarUI", "my.package.MyScrollBarUI");
prima di creare qualsiasi componenti Swing.
In MyScrollBarUI
, di ignorare i seguenti metodi:
public class MyScrollBarUI extends BasicScrollBarUI {
@Override
protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) {
// your code
}
@Override
protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {
// your code
}
}
tua barra di scorrimento è graficamente molto semplice, quindi non dovrebbe essere troppo difficile da attuare.
Ottima risposta grazie mille –
Assicurati di sovrascrivere il 'vuoto protetto paintTrack (Graphics g, JComponent c, Rectangle trackBounds) 'e' paintThumb' (stessa firma del metodo) in [BasicScrollBarUI] (http://docs.oracle.com/javase/6/docs/api/javax/swing/plaf/ basic/BasicScrollBarUI.html) o potresti non vedere nulla. – Nateowami
Sarebbe possibile non hardcode 'estende BasicScrollBarUI' ma estendere la classe UI barra di scorrimento attualmente utilizzata? Mi piace 'estende scrollBar.getUI(). GetClass()'? – Bowi
1) di override JToolBar
2) la maggior parte di Custom Look and Feel overrode che
la relazione tra barra degli strumenti e barra di scorrimento è quella ... ;-) Plus (dopotutto è lunedì mattina): si sostituiscono i metodi, le classi vengono estese (o implementate) – kleopatra
Non dimenticare che se si prevede di utilizzare l'UIManager per ignorare tutte le barre di scorrimento come questo
UIManager.put("ScrollBarUI", "my.custom.SimpleScrollBarUI");
quindi la classe SimpleScrollBarUI must avere il metodo createUI, vale a dire:
public class SimpleScrollBarUI extends BasicScrollBarUI {
public static ComponentUI createUI(JComponent c) {
return new SimpleScrollBarUI();
}
//...
}
i non ti ho capito. uno scrollpan inserisce automaticamente una barra di scorrimento quando la dimensione dell'elemento che contiene è compromessa. – gprathour