0

私はまだJavaの初心者で、基本しか知りません。少し問題があります。助けていただければ幸いです。

私が作成しているプロジェクトで 5 回ほど使用するこの次のコードは、コードをシンプルに保つためにメソッドにしたいと考えています。

このコードで変更する必要があるのはクエリだけです。これが唯一の変数です。

前もって感謝します。(私の悪い英語でごめんなさい)。

Vector columnNames = new Vector();
Vector data = new Vector();
JPanel panel = new JPanel(); //
try {
  Conectar();
  String query = "Select * from Dados";
   stm = (Statement) con.createStatement();
   rs = stm.executeQuery(query);
   ResultSetMetaData metaData = rs.getMetaData();
   int columns = metaData.getColumnCount();
   for (int i = 1; i <= columns; i++) {
   columnNames.addElement(metaData.getColumnName(i));
}
while (rs.next()) {
   Vector row = new Vector(columns);
   for (int i = 1; i <= columns; i++) {
   row.addElement(rs.getObject(i));
}
 data.addElement(row);
}
 rs.close();
 stm.close();
} catch (Exception e) {
 System.out.println(e);
}
JTable table = new JTable(data, columnNames);
TableColumn column;
for (int i = 0; i < table.getColumnCount(); i++) {
column = table.getColumnModel().getColumn(i);
column.setMaxWidth(250);
}
table.setPreferredScrollableViewportSize(new Dimension(600, 400));
table.setEnabled(false);
JScrollPane scrollPane = new JScrollPane(table); panel.add(scrollPane); 
JFrame frame = new JFrame();
frame.add(panel); //adiciona o panel à frame
frame.setResizable(false);
frame.setSize(640, 480); //define o tamanho da frame
frame.setLocationRelativeTo(null);
frame.setVisible(true); //torna a frame visivel
} 
4

3 に答える 3

1

コードを

public void goodDescriptiveName(String query) {
    ...
}

行を削除します

String query = "Select * from Dados";

あなたのコードから。次に、次のように呼び出します。

goodDescriptiveName("Select * from Dados");
goodDescriptiveName("Select * from Next");
...
于 2012-07-13T09:09:27.000 に答える
0
public void methodName(String query) {
    Vector columnNames = new Vector();
    Vector data = new Vector();
    JPanel panel = new JPanel(); //
    try {
      Conectar();
       stm = (Statement) con.createStatement();
       rs = stm.executeQuery(query);
       ResultSetMetaData metaData = rs.getMetaData();
       int columns = metaData.getColumnCount();
       for (int i = 1; i <= columns; i++) {
       columnNames.addElement(metaData.getColumnName(i));
    }
    while (rs.next()) {
       Vector row = new Vector(columns);
       for (int i = 1; i <= columns; i++) {
       row.addElement(rs.getObject(i));
    }
     data.addElement(row);
    }
     rs.close();
     stm.close();
    } catch (Exception e) {
     System.out.println(e);
    }
    JTable table = new JTable(data, columnNames);
    TableColumn column;
    for (int i = 0; i < table.getColumnCount(); i++) {
    column = table.getColumnModel().getColumn(i);
    column.setMaxWidth(250);
    }
    table.setPreferredScrollableViewportSize(new Dimension(600, 400));
    table.setEnabled(false);
    JScrollPane scrollPane = new JScrollPane(table); panel.add(scrollPane); 
    JFrame frame = new JFrame();
    frame.add(panel); //adiciona o panel à frame
    frame.setResizable(false);
    frame.setSize(640, 480); //define o tamanho da frame
    frame.setLocationRelativeTo(null);
    frame.setVisible(true); //torna a frame visivel
    } 
}

しかし、GUIコードは他の場所で抽出する必要があると思います。:)

于 2012-07-13T09:12:42.907 に答える
0
public boolean someAction(String query) {
...
rs = stm.executeQuery(query);
...
return true;
}

エラーが発生した場合は、 を返しfalseます。true/false でテストしたくない場合は、void代わりにboolean.

于 2012-07-13T09:08:50.603 に答える