2012-07-13 88 views
0

我仍然noob在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 
} 
+1

那麼你的問題到底是什麼? – posdef 2012-07-13 09:06:32

回答

1

只是圍繞着你的代碼

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

,並從你的代碼中刪除行

String query = "Select * from Dados"; 

。然後,你只需要調用它像這樣:

goodDescriptiveName("Select * from Dados"); 
goodDescriptiveName("Select * from Next"); 
... 
0
public boolean someAction(String query) { 
... 
rs = stm.executeQuery(query); 
... 
return true; 
} 

如果您遇到任何錯誤,返回false。如果您不想用真/假測試它,只需使用void而不是boolean

+0

哇感謝您的快速回復,這真的很爛 – 2012-07-13 14:26:26

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代碼應該在其他地方提取。 :)

+0

我應該怎麼做?你的意思是一種顯示GUI的方法嗎? – 2012-07-13 14:28:11

+0

@HugoMonteiro您可以創建一個獲取數據的方法,另一個獲取數據並創建按鈕/表格和其他GUI元素。 – Pawel 2012-07-15 21:17:19