![](/img/trans.png)
[英]Querydsl - Exception in thread “main” java.lang.IllegalArgumentException: No sources given
[英]Exception in thread “main” java.lang.IllegalArgumentException: setSelectedIndex: 4 out of bounds
我正在嘗試制作游戲,但是我的代碼根本無法正常工作,我也不知道為什么。 我是一個新手程序員,經驗不足,對我的代碼感到非常沮喪。 我一直在嘗試解決此問題,但無濟於事。 請幫我。
public class hello {
//Int's and things
static JButton Play = new JButton("<PLAY>");
static JFrame pane = new JFrame("CIrCUT 0.0.2");
static JLabel Title = new JLabel("CIrCUT");
static JLabel none = new JLabel(" ");
static JPanel panel = new JPanel(new GridLayout(10, 10, 10, 10));
static JButton Options = new JButton("<OPTIONS>");
static JPanel panel2 = new JPanel(new GridLayout(10, 10, 10, 10));
static String b[] = new String[3];
static int panelLoct = 1;
JComboBox optionlist = new JComboBox();
void initialize() {
b[0] = "High";
b[1] = "Medium";
b[2] = "Low";
//title
pane.setTitle("CIrCUT 0.0.2");
//drop down
optionlist .setModel(new DefaultComboBoxModel(new String[] {"Option", "High", "Medium", "Low"}));
optionlist.setSelectedIndex(4);
optionlist.addActionListener((ActionListener) this);
//other pane-related things
if (panelLoct == 1) {
pane.setLayout(new GridLayout(10, 10));
panel.setMaximumSize(new Dimension(500, 500));
pane.setSize(500, 500);
pane.setMaximumSize(new Dimension(500, 500));
panel.add(Title);
panel.add(none);
panel.add(Play);
panel.add(Options);
panel2.add(optionlist);
Play.setSize(new Dimension(500, 450));
pane.setLocation(500, 50);
pane.setBackground(Color.lightGray);
pane.setContentPane(panel);
pane.pack();
pane.setMinimumSize(new Dimension(500, 500));
pane.setContentPane(panel);
OptionButtonHandler cbHandler = new OptionButtonHandler();
Options.addActionListener(cbHandler);
pane.setVisible(true);
}
}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
private static class OptionButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
pane.remove(panel);
pane.add(panel2);
}
}
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox) e.getSource();
cb.getSelectedItem();
}
public static void main(String args[]) {
hello a = new hello();
a.initialize();
}
}
我在想問題是JComboBox,但是每當我刪除它時,我都會得到一個錯誤。
編輯
這是錯誤
at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
at hello.initialize(hello.java:36)
at hello.main(hello.java:81)
JComboBox optionlist = new JComboBox();
optionlist.setSelectedIndex(4);
這將導致異常,因為您正在設置空 JComboBox的索引。 根本不要這樣做。 在選擇索引之前,請在組合框中填充項目。
實際上,您在哪里向JComboBox添加任何項目?
請注意,將來如果您對代碼所生成的異常有疑問,則需要在此處發布實際的異常堆棧跟蹤,並為我們指出哪一行引發了異常。
您正在設置僅包含4個元素的ComboBox模型,因此允許的最大索引為3(因為其0、1、2、3)。 因此,如果嘗試將所選索引設置為第4個元素,則必須將其設置為3,如下所示:
optionlist .setModel(new DefaultComboBoxModel(new String[] {"Option", "High", "Medium", "Low"}));
optionlist.setSelectedIndex(3);
首先在選項列表中添加一些選項,然后執行此選項列表。setSelectedIndex(4);
JComboBox optionlist = new JComboBox();
optionlist .setModel(new DefaultComboBoxModel(new String[] {"Option", "Baby Ride Frame s/s", "Baby Ring", "Baby Tri Cycle Frame", "Baby Tri Cycle Frame D/Seat"}));
optionlist.setSelectedIndex(4);
我在日食方面遇到了完全相同的問題。 錯誤是“ setSelctedIndex(0)超出范圍。我通過確保所有服務器都在eclipse上運行來解決它。這包括mysql,apache和tomcat服務器來測試網頁。如果使用eclipse,請確保所有本地服務器在...上。
那是因為您正試圖在數組列表中顯示不可用的項目。 因此,請確保您要嘗試顯示的所有內容都可以在Array列表中使用,請記住Arraylist是從
JComboBox optionlist = new JComboBox();
optionlist.setSelectedIndex(4);
而且您沒有第4個索引。 即使您的組合框是空的,所以沒有可用的第四組合框。 和或這樣做。
JComboBox optionlist = new JComboBox();
optionlist.setSelectedIndex(-1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.