При использовании setRollover (true), кнопки на панелях Swing являются плоскими без границ, а рамка рисуется только при наведении/нажатии кнопки. Однако, если кнопки сначала добавляются на панель, а затем панель добавляется на панель инструментов, это не работает. Есть ли простой способ, как достичь этого?Создание составного компонента Swing для JToolbar
Я хочу, чтобы кнопки были в JPanel, чтобы заставить их действовать как один компонент (представьте себе пейджинговый компонент с кнопками «первая/предыдущая/следующая/последняя страница»). Я также хочу, чтобы он работал независимо от L & F (как если бы JPanel не был между панелью инструментов и кнопками).
EDIT:
Сравнить кнопки One & Два (добавлены непосредственно) с кнопками Три & Четыре (добавлено через JPanel) в следующем примере:
import javax.swing.*;
public class ToolbarTest extends JFrame {
ToolbarTest() {
JToolBar toolbar = new JToolBar();
toolbar.setRollover(true);
JButton button = new JButton("One");
button.setFocusable(false);
toolbar.add(button);
button = new JButton("Two");
button.setFocusable(false);
toolbar.add(button);
JPanel panel = new JPanel();
button = new JButton("Three");
button.setFocusable(false);
panel.add(button);
button = new JButton("Four");
button.setFocusable(false);
panel.add(button);
toolbar.add(panel);
add(toolbar);
pack();
}
public static void main(String[] args) throws Throwable {
// optional: set look and feel (some lf might ignore the rollover property)
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) { // or "Windows", "Motif"
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
ToolbarTest frame = new ToolbarTest();
frame.setVisible(true);
}
}
Ниже приведены скриншоты:
Панель инструментов на Nimbus LF:
Та же панель инструментов при наведении курсора на вторую кнопку (курсор мыши не отображается):
Та же панель инструментов на Windows, LF:
Я бы хотел, чтобы кнопки «Три» и «Четыре» работали так же, как кнопки «Один» и «Два».
не видел этого. отредактируйте вопрос с помощью вашего [SSCCE] (http://sscce.org/) – mKorbel
Я добавил пример. – Jirka
должно быть JToolBar ???, вам нужно перемещаться с помощью JToolBar на экране ???, – mKorbel