Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

Swingطريقة الحصول على جميع القيم التي تم تحديدها في الـ JTable عند النقر على زر

المثال التالي يعلمك طريقة الحصول على جميع القيم التي قام المستخدم بتحديدها في الجدول عند النقر على زر.


مثال

Main.java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import javax.swing.JTextArea;
public class Main {
// هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها
static JFrame frame = new JFrame("JTable demo");
static DefaultTableModel model = new DefaultTableModel();
static JTable table = new JTable( model );
static JScrollPane tableScroller = new JScrollPane( table );
static JButton button = new JButton("Display Selected Cells");
static JTextArea textArea = new JTextArea();
static JScrollPane textAreaScroller = new JScrollPane(textArea);
public static void main(String[] args) {
// الخاصة فيه model هنا قمنا بتخزين أسماء أعمدة الجدول و القيم التي ستظهر فيه ثم وضعناها في الـ
String columns[] = {"ID", "First Name", "Last Name", "Phone"};
String data[][] = {
{"1", "Mhamad", "Harmush", "70123456" },
{"2", "Ahmad", "Mousally", "76454532" },
{"3", "Hala", "Hassan", "03555124" },
{"4", "Rim", "Al Mouhandes", "01321123" },
{"5", "Said", "Al Kurdy", "07445599" },
{"6", "Abdullah", "Saadi", "71001234" },
{"7", "Ibrahim", "Marhaba", "04555666" },
{"8", "Omar", "El Koussa", "01357894" },
{"9", "Riad", "Asaad", "76887123" },
{"10", "Rawan", "Hoblos", "01200500" },
{"11", "Naya", "Asmar", "03654123" },
{"12", "Mahmoud", "Mawwas", "70040300" },
{"13", "Elena", "Shbib", "71199113" }
};
model.setDataVector(data, columns);
// بدل تحديد السطر كله دفعة واحدة ( cell ) هنا جعلنا المستخدم قادر على تحديد خلية
table.setCellSelectionEnabled(true);
// textArea هنا قمنا بتحديد طريقة عرض النص بداخل الـ
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
// frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ
tableScroller.setBounds(0, 0, 585, 200);
button.setBounds(20, 220, 200, 20);
textAreaScroller.setBounds(20, 260, 535, 80);
// frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ
frame.add(tableScroller);
frame.add(button);
frame.add(textAreaScroller);
// frame هنا قمنا بتحديد خصائص الـ
frame.setSize(600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setVisible(true);
// button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
// textArea سيتم أولاً مسح أي نص موجود في الـ
textArea.setText("");
// textArea بعدها سيتم المرور على جميع القيم الموجودة في الجدول و وضع المحدد منها في الـ
for(int i=0; i<table.getRowCount(); i++)
for(int j=0; j<table.getColumnCount(); j++)
if(table.isCellSelected(i, j))
textArea.append((String)table.getValueAt(i, j) + " + ");
}
});
}
}
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.JScrollPane; import javax.swing.JButton; import javax.swing.JTextArea; public class Main { // هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها static JFrame frame = new JFrame("JTable demo"); static DefaultTableModel model = new DefaultTableModel(); static JTable table = new JTable( model ); static JScrollPane tableScroller = new JScrollPane( table ); static JButton button = new JButton("Display Selected Cells"); static JTextArea textArea = new JTextArea(); static JScrollPane textAreaScroller = new JScrollPane(textArea); public static void main(String[] args) { // الخاصة فيه model هنا قمنا بتخزين أسماء أعمدة الجدول و القيم التي ستظهر فيه ثم وضعناها في الـ String columns[] = {"ID", "First Name", "Last Name", "Phone"}; String data[][] = { {"1", "Mhamad", "Harmush", "70123456" }, {"2", "Ahmad", "Mousally", "76454532" }, {"3", "Hala", "Hassan", "03555124" }, {"4", "Rim", "Al Mouhandes", "01321123" }, {"5", "Said", "Al Kurdy", "07445599" }, {"6", "Abdullah", "Saadi", "71001234" }, {"7", "Ibrahim", "Marhaba", "04555666" }, {"8", "Omar", "El Koussa", "01357894" }, {"9", "Riad", "Asaad", "76887123" }, {"10", "Rawan", "Hoblos", "01200500" }, {"11", "Naya", "Asmar", "03654123" }, {"12", "Mahmoud", "Mawwas", "70040300" }, {"13", "Elena", "Shbib", "71199113" } }; model.setDataVector(data, columns); // بدل تحديد السطر كله دفعة واحدة ( cell ) هنا جعلنا المستخدم قادر على تحديد خلية table.setCellSelectionEnabled(true); // textArea هنا قمنا بتحديد طريقة عرض النص بداخل الـ textArea.setLineWrap(true); textArea.setWrapStyleWord(true); // frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ tableScroller.setBounds(0, 0, 585, 200); button.setBounds(20, 220, 200, 20); textAreaScroller.setBounds(20, 260, 535, 80); // frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ frame.add(tableScroller); frame.add(button); frame.add(textAreaScroller); // frame هنا قمنا بتحديد خصائص الـ frame.setSize(600, 400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(null); frame.setVisible(true); // button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // textArea سيتم أولاً مسح أي نص موجود في الـ textArea.setText(""); // textArea بعدها سيتم المرور على جميع القيم الموجودة في الجدول و وضع المحدد منها في الـ for(int i=0; i<table.getRowCount(); i++) for(int j=0; j<table.getColumnCount(); j++) if(table.isCellSelected(i, j)) textArea.append((String)table.getValueAt(i, j) + " + "); } }); } }

ستظهر لك النافذة التالية عند التشغيل.

لتحديد أكثر من قيمة في الجدول أبق إصبعك على الزر Ctrl أثناء التحديد.

طريقة الحصول على جميع القيم التي تم تحديدها في الجدول JTable عند النقرعلى زر في جافا