小编Ocr*_*oke的帖子

Java摘要/扩展问题

我目前正在为基于Java的文本游戏开发角色生成机制,但我遇到了一个问题,无法看到我可能出错的地方.我有一个"Character"类,它是抽象的,然后是另一个类,"NPCharacter",意思是构建在此之上.

public abstract class Character {
    public abstract void generateStats();
}

public class NPCharacter extends Character {
    public void generateStats() {

    }
} 
Run Code Online (Sandbox Code Playgroud)

Eclipse说"类型NPCharacter不能继承最终的类字符".谁能在这里看到错误?

提前致谢.

java eclipse oop

7
推荐指数
1
解决办法
886
查看次数

使用Java ODBC创建连接会导致java.sql.SQLException:无效的游标类型异常

我正在尝试创建一个访问ODBC数据源的Java程序.使用以下代码......

Connection conn;

try {
    Driver d = (Driver)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
    DriverManager.registerDriver(d);
    String URL = "jdbc:odbc:AR System ODBC Data Source";
    conn = DriverManager.getConnection(URL);
} catch (SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e) {
    Logger.error(this, e);
} 

Statement s = null;
ResultSet rs = null;

try {
    s = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
    rs = s.executeQuery("select count(*) as rows from table");

    if (rs.next()) {
        System.out.print("Count of all rows is " + rs.getInt("rows"));
    }
} catch (SQLException e) { 
     e.printStackTrace();
} finally {
    DBUtils.safelyClose(s, rs); …
Run Code Online (Sandbox Code Playgroud)

java sql odbc jdbc

7
推荐指数
1
解决办法
1468
查看次数

JTable无法从SwingWorker线程更新

我目前有一个JTable,其中填充了一系列数据,这些数据构成了导入屏幕的基础.当我选择了我想要或不想要的更新时,我按下Apply按钮并成功应用更新,但JTable没有完全更新.

这是处理应用更改的方法的代码:

private void doProcessChanges() {
    ChangeProcessor cp = new ChangeProcessor();
    final List<Integer> rowsToRemove = new ArrayList<Integer>();
    BeanTableModel<UpdateModel> model = (BeanTableModel<UpdateModel>) table.getModel();

    for (int i=0; i<model.getRowCount(); i++) {
        UpdateRow ur = mode.getObject(i);
        if (ur.isAccepted() <> ChangeAcceptance.NO_ACTION) {
           cp.processChange(ur);
           rowsToRemove.add(i);
        }
    }

   SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            for (int row : rowsToRemove) {
                model.removeObject(row);
                model.fireTableDataChanged();
            }
    }
);
}
Run Code Online (Sandbox Code Playgroud)

从SwingWorker线程中调用该方法,如下所示:

 SwingWorker<Object, Object> worker = new SwingWorker<Object, Object>() {

                    @Override
                    protected Object doInBackground() throws Exception {
                        doProcessChanges();
                        return null; …
Run Code Online (Sandbox Code Playgroud)

java swing jtable swingworker jide

0
推荐指数
1
解决办法
936
查看次数

标签 统计

java ×3

eclipse ×1

jdbc ×1

jide ×1

jtable ×1

odbc ×1

oop ×1

sql ×1

swing ×1

swingworker ×1