2010-10-18 36 views

Trả lời

2

Hãy xem ví dụ này dường như làm những gì bạn muốn.

http://www.java2s.com/Code/Java/Swing-JFC/CustomComboBoxwithImage.htm

gì bạn đang tìm kiếm là một renderer tùy chỉnh cho JComboBox. Trình kết xuất chỉ đơn giản là một JComponent, vì vậy nếu bạn có thể tạo một thành phần (JPanel với các mục cần thiết chứa), thì bạn có thể tạo hầu như bất kỳ kết quả nào mà bạn có thể nghĩ đến). Bạn thậm chí có thể ghi đè lên phương pháp sơn nếu sử dụng JComponents tiêu chuẩn là không đủ cho bạn.

+1

Các renderer mặc định cho một JComboBox hỗ trợ các biểu tượng. – camickr

9

Chỉ cần thêm một biểu tượng để mô hình thay vì một String:

import java.awt.*; 
import javax.swing.*; 

public class ComboBoxIcon extends JFrame 
{ 
    JComboBox comboBox; 

    public ComboBoxIcon() 
    { 
     Object[] items = 
     { 
      new ImageIcon("about16.gif"), 
      new ImageIcon("add16.gif"), 
      new ImageIcon("copy16.gif") 
     }; 
     comboBox = new JComboBox(items); 
     getContentPane().add(comboBox, BorderLayout.NORTH); 
    } 

    public static void main(String[] args) 
    { 
     JFrame frame = new ComboBoxIcon(); 
     frame.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 
} 
+0

Tôi có một mảng BufferedImage(), tôi có thể sử dụng nó thay vì các mục [] ?? – user2277550

+0

@ user2277550 tạo ImageIcons bằng BufferedImage. Hộp kết hợp có trình kết xuất mặc định cho Biểu tượng, không phải cho hình ảnh. – camickr

Các vấn đề liên quan