| Код | class DB {
... DB(int f) { String url = "jdbc:odbc:address"; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(Exception e) { System.out.println("Classdefnotfound"+e); } try { Connection db = DriverManager.getConnection(url); Statement sq = db.createStatement(); String qw; if (f == 0) qw = "SELECT name FROM street"; else if (f == 1) qw = "SELECT house FROM address"; ResultSet res = sq.executeQuery(qw); while (res.next()) { String row = f == 0 ? res.getString("name") : res.getString("house"); lst.add(row + "\n"); } }
... ...
String get(int Ind) { return (String)lst.get(Ind); }
int size() { return lst.size(); } }
|
Вызов этого класса происходит из диалога с закладками. Если открывается закладка с индексом 0(она же открыта по умолчанию), то должен выполнится первый запрос, если с индексом 1, то второй.
То есть так вызывается класс если открыта закладка по-умолчанию
и так, если щелкнули по какой-либо закладке
| Код | tabs.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { DB db2 = new DB(tabs.getSelectedndex()); for (int j=0; j < db2.size(); j++) ... } });
|
То есть я передаю в конструктор класса DB целое число и в зависимости от этого числа выполняю то или иной запрос. Теперь собственно проблема: в строке 25 выдается ошибка "переменная qw не инициализирована". Значит не одно из условий
| Код | if (f == 0) ... else if (f == 1) ...
|
не выполняется. А почему? |