我從JTable下載數字時遇到問題。在Eclipse中,我擁有JavaSE 1.7並且它都可以。我在IntelliJ IDEA中打開了我的項目並選擇了SDK java jdk 1.8。無法將java.lang.Object轉換爲int
private int;
public void tableEdit(final JTable table) {
table.getModel().addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
// TODO Auto-generated method stub
if (table.getCellEditor() != null) {
int col = table.getSelectedColumn();
id = (int)table.getValueAt(table.getSelectedRow(), 0); //ERROR
錯誤:
java: incompatible types: java.lang.Object cannot be converted to int
編輯:
新的問題: JTable中我有2場,ID並從下拉框選擇值後場2(組合框)想要檢索來自ID字段的值,以便他們知道我需要更新哪一行。
categoryBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
if (newrow_flag == 0) {
JComboBox comboBox = (JComboBox) event.getSource();
Object item = event.getItem();
if (event.getStateChange() == ItemEvent.SELECTED
&& box_flag_category > 0) {
Category selected_category = (Category) categoryBox
.getSelectedItem();
int rowid = Integer.getInteger(itemTable.getValueAt(
itemTable.getSelectedRow(), 0).toString()); //Error
id_category = selected_category.getId();
fireItemEvent(new ItemsEvent(rowid, "produkty", null,
null, null, id_category, id_company, "update"),
"box_category");
}
box_flag_category++;
}
}
});
和錯誤:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.magazyn.view.View$9.itemStateChanged(View.java:659)
at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1223)
at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1280)
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1327)
at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:118)
at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:93)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:576)
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:622)
at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:834)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
at java.awt.Component.processMouseEvent(Component.java:6527)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
[...]
錯誤指向該行:
int rowid = Integer.getInteger(itemTable.getValueAt(
itemTable.getSelectedRow(), 0).toString());
爲更好地幫助儘快發佈一個SSCCE/MCVE可短期運行,可編譯JTable/JComboBox的硬編碼值在局部變量中 – mKorbel 2014-08-27 10:45:17