このコードは mysql に接続し、JFrame でテーブルを表示します。まず、試しframe.add(table)
てみましたが機能しませんでしたがframe.setcontentpane(table)
、このコードでは機能しており、mysql でテーブルを表示できます。
form.getContentPane().add(table);
空のテーブルも表示されていますが、機能していません。
addとsetcontentpaneの違いを知りたいですか?
add が機能しないのはなぜですか?
GUIでもボタンをドラッグしてJFrameに表示したかったのですが、コンテンツペインを設定すると、その後ボタンを表示できません
学生の JFrame のようなデザイン フレーム (右クリック -> 新しい Jframe) が必要です クラスを作成してデザインをコーディングしたくない GUI ビルダーを使用したいので、コンポーネントをドラッグし、ドラッグしたコンポーネントを使用します
Main.java:
Vector columnNames = new Vector();
Vector data = new Vector();
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con =DriverManager.getConnection("jdbc:mysql://localhost:3306/school", "colorway", "colorway");
String sql = "Select name,lname from student";
Statement statement = con.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
ResultSetMetaData metaData = resultSet.getMetaData();
int columns = metaData.getColumnCount();
for (int i = 1; i <= columns; i++) {
columnNames.addElement(metaData.getColumnName(i));
}
while (resultSet.next()) {
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++) {
row.addElement(resultSet.getObject(i));
}
data.addElement(row);
}
resultSet.close();
statement.close();
Students form=new Students();
JTable table=new JTable(data, columnNames);
form.setContentPane(table);
form.setVisible(true);
学生.java:
public class Students extends javax.swing.JFrame {
//somecode
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
public JPanel getjpanel(){
return this.jPanel1;
}
public JScrollPane getJscrollPane()
{
return this.jScrollPane1;
}
public JTable getJTable()
{
return this.jTable1;
}
}