在我的應用程序我有2種類型的JComboBox
:可編輯和不可編輯。
可編輯這裏怎麼會出現在Windows 7與Java 7:Java JComboBox外觀
和這裏的不可編輯:
是否有可能設置白色背景中不可編輯JComboBox
?
在我的應用程序我有2種類型的JComboBox
:可編輯和不可編輯。
可編輯這裏怎麼會出現在Windows 7與Java 7:Java JComboBox外觀
和這裏的不可編輯:
是否有可能設置白色背景中不可編輯JComboBox
?
只需在不可編輯組合上設置背景。 注意:默認情況下編輯組合的編輯器是JTextField
,所以這就是使用UIManager
值的原因。
在Windows XP上使用Java 7:
import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.*;
public class ComboBoxDemo implements Runnable
{
public static void main(String[] args) throws Exception
{
SwingUtilities.invokeLater(new ComboBoxDemo());
}
@SuppressWarnings("unchecked")
public void run()
{
String[] items = new String[]{"", "Apple", "Banana", "Carrot"};
Color bgColor = UIManager.getColor("TextField.background");
UIManager.put("ComboBox.selectionBackground",
new ColorUIResource(bgColor));
JComboBox combo1 = new JComboBox(items);
combo1.setPrototypeDisplayValue("XXXXXXXXXXXXXXX");
combo1.setEditable(true);
combo1.setSelectedIndex(-1);
JComboBox combo2 = new JComboBox(items);
combo2.setPrototypeDisplayValue("XXXXXXXXXXXXXXX");
combo2.setEditable(false);
combo2.setSelectedIndex(-1);
combo2.setBackground(bgColor);
JFrame frame = new JFrame();
Container c = frame.getContentPane();
c.setLayout(new FlowLayout());
c.add(combo1);
c.add(combo2);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 100);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
編輯:添加的代碼刪除與大小的差異和重點色。
您的代碼不起作用... – Fry
它適合我。你需要更好地解釋你的問題。你看到你不想要什麼?或者,你有什麼看不到你想要的? – splungebob
我希望組合框不可編輯(Relazione 1)看起來像可編輯組合框(lista cod)。 – Fry
如果您發佈我們可以使用的[MCVE](http://stackoverflow.com/help/mcve),您將會有更好的運氣。你有沒有嘗試過使用自定義渲染器? –
所有評論都是關於「禁用」,但我寫了「不可編輯」,這意味着用戶不能用鍵盤寫在「組合框」內,但可以點擊並查看項目... – Fry