2011-12-14 34 views
8

Tôi muốn có một nút trong Java hiển thị mũi tên - như trên bàn phím. Cho đến nay tôi có điều nàyJava - có các nút hiển thị mũi tên

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

Nó hoạt động ... nhưng trông không đẹp lắm.

Bất kỳ sự giúp đỡ làm thế nào để cải thiện điều này được đánh giá cao

Trả lời

19

Swing có một mặc định nút mũi tên lớp đó là BasicArrowButton

Ví dụ:

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 Rất tốt! Dạy tôi một cái gì đó mới :) – MByD

4

Chỉ cần sử dụng một hình ảnh:

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

Nếu tôi xây dựng các ứng dụng để tập tin .JAR và gửi cho bạn của tôi ... anh ta sẽ thấy các biểu tượng? –

+3

@PavelJanicek: Nếu bạn bao gồm các biểu tượng trong bình và nhận chúng đúng như tài nguyên trong lớp của bạn thì * CÓ *. –

11

Sử dụng ImageIcon trên nút hoặc một trong số Swing BasicArrowButtons có lẽ là cách tiếp cận tốt nhất. Tuy nhiên, bạn cũng có thể cũng sử dụng các biểu tượng mũi tên Unicode. Ví dụ

\u25C4: ◄

\u2190: ←

\u25BA: ►

\u2192: →

Một số nguồn:

Bạn sẽ cần phải đảm bảo rằng các phông chữ (s) ứng dụng của bạn có thể sử dụng hỗ trợ các biểu tượng này.

+0

Đây là giải pháp tốt thực sự, nhưng tôi có lẽ sẽ đi cho BasicArrowButtons. Anyways cảm ơn cho nó! –