這可能是JComboBox popup menu not appearing重複,但因爲它是一個相當古老的問題,而不是已經活躍了相當長的一段時間,加上所有的答案都沒有解決方案,這與我的問題有幫助。因此我決定創建一個新問題。JComboBox的下拉列表
的問題如下: 我得到了一個前colleque,這並不在我的公司工作了的應用。現在我嘗試將JComboBox添加到JPanel。 JCombobox按預期方式顯示,但其行爲與Seth在其問題中描述的相同:
1)第一次單擊展開按鈕時什麼也不做。第二次點擊突出顯示框的內容,但彈出窗口仍然不顯示。
2)一旦我點擊了按鈕,並給它的焦點,上/下擊鍵循環正確的條目。
我已經將代碼分解到我認爲是所需編程的最小程度,以便發生問題。 (正如上面提到的提供SSCCE的問題中的一個評論,這從未發生過)。
現在,這裏是我的代碼可以提供:我試着用更多的項目popoulating(提議jluzwick)看到
public static class CreateProjectDialog extends JFrame {
private Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
public CreateProjectDialog() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
int SZ_INCR = 1;
// Passe Fontgröße an Resolution an:
if (size.width > 1920) {
SZ_INCR = 2;
}
// Initialize Glass Layer
final JPanel panelGlass = (JPanel) getGlassPane();
panelGlass.setLayout(null);
panelGlass.setVisible(true);
private static JPanel licBorrowPanel = null;
licBorrowPanel = new JPanel();
licBorrowPanel.setBounds(0, 20, 1000, 500);
licBorrowPanel.setVisible(false);
licBorrowPanel.setBackground(Color.WHITE);
panelGlass.add(licBorrowPanel);
}
public static void main(String[] args) {
hauptFrame = new CreateProjectDialog();
}
public static void licenceBorrowDialog() {
int mainWidth = hauptFrame.getSize().width;
int mainHeight = hauptFrame.getSize().height;
// pick a Date
JComboBox dayList = new JComboBox();
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Calendar calToday = Calendar.getInstance();
Date dayToday = calToday.getTime();
int weekDay = calToday.get(Calendar.DAY_OF_WEEK);
String weekDayName = "";
for (int i = 1; i <= 22; i++){
dayToday.setDate(dayToday.getDate()+1);
weekDay = dayToday.getDay();
weekDayName = translateWeekDay(weekDay);
dayList.addItem(i + " day(s) until " + weekDayName + " " + df.format(dayToday));
}
dayList.setOpaque(true);
dayList.setSelectedIndex(2);
dayList.setBounds(mainWidth/2 - (125*SZ_INCR), (165*SZ_INCR), (250*SZ_INCR), (100*SZ_INCR));
licBorrowPanel.add(dayList);
dayList.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
int numberOfDays;
JComboBox dl = (JComboBox)e.getSource();
numberOfDays = dl.getSelectedIndex()+1;
labelSelectedDate.setText("<HTML><BODY><b>Count of days: </b>" + numberOfDays + "</HTML></BODY>");
}
});
}
//Translate weekday int to name
public static String translateWeekDay(int day){
String retDay;
switch (day) {
case 0: retDay = "Monday";
break;
case 1: retDay = "Truesday";
break;
case 2: retDay = "Wednesday";
break;
case 3: retDay = "Thursday";
break;
case 4: retDay = "Friday";
break;
case 5: retDay = "Saturday";
break;
case 6: retDay = "Sunday";
break;
default: retDay = "Invalid day";
break;
}
return retDay;
}
}
,如果下拉簡直是背後隱藏的東西,但是沒有。
正如Sehtim懷疑的那樣,我絕對沒有使用getRootPane()代替getContentPane()。
還有JCombobox is not displayed,在那裏接受的答案是將調用setVisible(真)設置爲構造函數的結束。我試過了,並沒有改變我的情況。
的問題,我需要一個答案,就是:如何讓我的下拉列表中可見,使用戶可以輕鬆地選擇一個條目?
你會想解決您的代碼,因爲它贏得不會編譯 – MadProgrammer