Java - наличие кнопок со стрелками

Я хотел бы иметь кнопки в Java, которые показывают стрелки - как на клавиатуре. Пока у меня это

JButton arrowUp = new JButton("^");
JButton arrowDown = new JButton("v");
JButton arrowLeft = new JButton("<");
JButton arrowRight = new JButton(">");

Вроде работает... но выглядит не очень красиво.

Любая помощь, как улучшить это, приветствуется


person Pavel Janicek    schedule 14.12.2011    source источник


Ответы (3)


В Swing есть класс кнопки со стрелкой по умолчанию: BasicArrowButton

Пример:

    JFrame frame = new JFrame("Arrow Button Demo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLayout(new BorderLayout());
    frame.add(new BasicArrowButton(BasicArrowButton.EAST), BorderLayout.EAST);
    frame.add(new BasicArrowButton(BasicArrowButton.NORTH), BorderLayout.NORTH);
    frame.add(new BasicArrowButton(BasicArrowButton.SOUTH), BorderLayout.SOUTH);
    frame.add(new BasicArrowButton(BasicArrowButton.WEST), BorderLayout.WEST);
    frame.pack();
    frame.setVisible(true);
person Harry Joy    schedule 14.12.2011

Использование ImageIcon на кнопке или одну из Swing BasicArrowButton Пожалуй, лучший подход. Однако вы можете также использовать символы стрелки Unicode. Например

\u25C4: ◄

\u2190: ←

\u25BA: ►

\u2192: →

Некоторые ресурсы:

Вам необходимо убедиться, что шрифты, которые может использовать ваше приложение, поддерживают эти символы.

person sudocode    schedule 14.12.2011
comment
Это действительно хорошее решение, но я, вероятно, выберу BasicArrowButtons. В любом случае спасибо за это! - person Pavel Janicek; 14.12.2011

Просто используйте изображение:

ImageIcon icon = new ImageIcon("images/icon.gif");
JButton button2 = new JButton(icon);
person RoflcoptrException    schedule 14.12.2011
comment
Если я соберу приложение в файл .JAR и отправлю своему другу ... увидит ли он значки? - person Pavel Janicek; 14.12.2011
comment
@PavelJanicek: Если вы включите значки в банку и правильно получите их в качестве ресурсов в своем классе, тогда ДА. - person Harry Joy; 14.12.2011