2011-12-14 15 views
8

Me gustaría tener un botón en Java que muestre las flechas, como en el teclado. hasta ahora tengo esteJava - con botones que muestran flechas

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

Es algo funciona ... pero no se ve bastante bien.

Cualquier ayuda la forma de mejorar esto es apreciado

Respuesta

19

oscilación tiene una clase de botón predeterminado flecha que es BasicArrowButton

Ejemplo:

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); 
+3

+1 ¡Guay! Me enseñó algo nuevo :) – MByD

4

sólo tiene que utilizar una imagen:

ImageIcon icon = new ImageIcon("images/icon.gif"); 
JButton button2 = new JButton(icon); 
+0

Si construyo la aplicación al archivo .JAR y se lo envío a mi amigo ... ¿verá los íconos? –

+3

@PavelJanicek: si incluye íconos en el jar y los obtiene apropiadamente como recursos en su clase, entonces * SÍ *. –

11

usando ImageIcon en el botón, o uno de Swing BasicArrowButtons es probablemente el mejor enfoque. Sin embargo, usted podría también usar símbolos de flecha Unicode. Por ejemplo

\u25C4: ◄

\u2190: ←

\u25BA: ►

\u2192: →

Algunos recursos:

Usted tendría que asegurarse de que la fuente (s) que su aplicación puede utilizar es compatible con estos símbolos.

+0

Esta es una buena solución, pero probablemente vaya por BasicArrowButtons. De todos modos gracias por eso! –