PDA

View Full Version : ایجاد جدول در جاوا



mohandesr
پنج شنبه 13 شهریور 1393, 23:16 عصر
با سلام خدمت همه دوستان
من دارم با اکلیپس کار می کنم و ویندوز بیلدر رو برای طراحی فرم به اکلیپس اضافه کردم حالا می خوام تو یک فرم یک جدول ایجاد کنم که اطلاعاتمو از پایگاه تو این جدول نشون بدم ولی متاسفانه نمی تونم با ابزار table در ویندوز بیلدر کار کنم ، کسی هست که بتونه بهم کمک کنه ؟تو اینترنت سرچ کردم Jtable رو معرفی کرده بودن ، پروژشو باید چجوری ایجاد کنم ؟ ممنون میشم اگه کسی بلده راهنماییم کنه.

vahid-p
جمعه 14 شهریور 1393, 15:02 عصر
یه مثال از JTable :
اول یه JTable ایجاد میکنی :
JTable table=new JTable(new DefaultTableModel(5, 10));

حالا به JFrame اضافه می کنی :
add(table);

و یک متد بنویس که با دستور زیر، سطر و ستون های اون رو مقدار دهی کنی :
table.getModel().setValueAt("Test", 2, 5);

mohandesr
جمعه 14 شهریور 1393, 17:48 عصر
با سلام ممنون از پاسختون میشه بگین این دستوراتی که گفتین دقیقا باید کجای برنامه بزاریم من که هر جای برنامه می زارم جواب نمی ده ، میشه یه برنامه کامل که اجرا میشه رو برام بزارین ممنون

vahid-p
شنبه 15 شهریور 1393, 00:35 صبح
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class MyTable extends JFrame {

public MyTable() {
super("My Table");
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JTable table = new JTable(1, 3);
String[] columnName = {"ID", "First Name", "Tel. Number"};
String[][] data = new String[][]{
{"1", "Ali", "1234"},
{"2", "Reza", "5678"},
{"3", "Mohammad", "091234"}
};

table.setModel(new DefaultTableModel(data, columnName)); //set values by array

table.setValueAt("***", 2, 2); //set one value in a time

add(table);
}

//Main
public static void main(String[] args) {
new MyTable().setVisible(true);
}

}

mohandesr
شنبه 15 شهریور 1393, 10:07 صبح
سلام آقای وحید بازم ممنون ولی من برنامه شما رو اجرا کردم نمی دونم چرا موقعی که اجرا میشه فقط دیتا ها رو نشون میده و اثری از نام ستون ها نیست ، حالا یه سوال دیگه اگه بخوام ردیف های جدول رو از جدول پایگاه داده با زدن یک دکمه پر کنم باید چیکار کنم ؟

vahid-p
شنبه 15 شهریور 1393, 15:36 عصر
اول سرچ کنید سریعتر به جواب میرسید.
اما برای نام هر ستون، JTable رو در JScrollPane قرار بده و اونو به فرمت اضافه کن :
JScrollPane pane=new JScrollPane(table);
add(pane);

در مورد قرار دادن اطلاعاتی که گفتید، متدش رو قبلا تو کد اشاره کردم. خط 21
میتونی یه متد بنویسی که با استفاده از این متد ( setValueAt ) اطلاعات پایگاه رو تو سلول های جدول قرار بده. یا هم به روش Vector یا همین روش آرایه، دسته ای از اطلاعات رو قرار بده. در هر صورت تفاوتی نداره.

mohandesr
شنبه 15 شهریور 1393, 17:03 عصر
سلام آقای وحید آره شما درست می فرمایید ولی باور کنید من اول سرچ می کنم بعد که به نتیجه نمی رسم مزاحم میشم الانم من یک دکمه تعریف کردم که می خوام با کلیک کردن او اطلاعات دیتابیسم که اس کیو ال 2008 هستش بیاد تو جدول اما نمی دونم چرا فقط رو این دکمه اجرا نمی کنه نمی دونم این دستورات با jdbc سازگاری نداره اخه دیتابیسم مشکلی نداره و روی result خطا میده و اجرا نمی کنه هر چی هم می گردم یا mysql هستش یا اوراکل تو رو خدا اگه می تونید مثل همیشه کمکم کنید ( ببخشید کدام اینطوریه من که هر چی تو تگ هم می زارم بازم به هم میریزه ) button4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
while (results.next()) {
model.insertRow(table.getRowCount(),
new Object[]{results.getLong(1),results.getString(2),
results.getString(3),results.getDouble(4)});

}

}

catch(SQLException sqlEx) {
System.out.println("* SQL error! *");
System.exit(1);
}
}
-----------------------------------------------------------------------------------------------
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String dbURL = "jdbc:sqlserver://localhost:1433;databaseName=service1;";
String user = "sa";
String pass = "12345";
Connection conn = DriverManager.getConnection(dbURL,user, pass);
System.out.println("service1");
Statement sta = conn.createStatement();
String sql= "select * from Identify";
ResultSet results = sta.executeQuery(sql);

}
catch(ClassNotFoundException cnfEx) {
System.out.println("* Unable to load driver! *");
System.exit(1);
}
catch(SQLException sqlEx) {
System.out.println("* SQL error! *");
System.exit(1);
}
}