Мне нужно создать эту полосу прокрутки для всех моих scrollpanes:
С Java Swing. Я использую Netbeans IDE. Какое самое простое решение?
Большое спасибо.
Привет
Мне нужно создать эту полосу прокрутки для всех моих scrollpanes:
С Java Swing. Я использую Netbeans IDE. Какое самое простое решение?
Большое спасибо.
Привет
Вы можете настроить внешний вид компонента Swing с помощью настройки пользовательского интерфейса. В случае полосы прокрутки панели прокрутки вы выполняете
scrollPane.getVerticalScrollBar().setUI(new MyScrollBarUI());
где MyScrollBarUI
получается из javax.swing.plaf.basic.BasicScrollBarUI
. Чтобы сделать это для всех полос прокрутки (не только в экземплярах JScrollPane
), вызовите
UIManager.put("ScrollBarUI", "my.package.MyScrollBarUI");
прежде чем создавать какие-либо компоненты Swing.
В MyScrollBarUI
вы отмените следующие методы:
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
}
}
Ваша полоса прокрутки графически очень проста, поэтому ее не следует выполнять слишком сложно.
1) переопределить JToolBar
2) большая часть Custom Look and Feel отменяет, что
Не забывайте, что если вы планируете использовать UIManager для переопределения всех полос прокрутки, таких как
UIManager.put("ScrollBarUI", "my.custom.SimpleScrollBarUI");
то ваш класс SimpleScrollBarUI должен иметь метод createUI, т.е.
public class SimpleScrollBarUI extends BasicScrollBarUI {
public static ComponentUI createUI(JComponent c) {
return new SimpleScrollBarUI();
}
//...
}