JTable
- একটি JTable জটিল ডেটা স্ট্রাকচার প্রদর্শনের জন্য JComponent-এর একটি সাবক্লাস।
- একটি JTable ডেটা রো ও কলাম-এ প্রদর্শনের জন্য মডেল ভিউ কন্ট্রোলার (MVC) ডিজাইন প্যাটার্ন অনুসরণ করে।
- DefaultTableModel ক্লাস AbstractTableModel-এक्सটেন্ড করে এবং এটি JTable-এ ডাইনামিক্যালি রো ও কলাম যোগ করতে ব্যবহৃত হয়।
- DefaultTableCellRenderer ক্লাস JLabel ক্লাস এক্সটেন্ড করে এবং এটি JTable সেল-এ ইমেজ, রঙিন টেক্সট ইত্যাদি যোগ করতে ব্যবহৃত হয়।
- একটি JTable TableModelListener, TableColumnModelListener, ListSelectionListener, CellEditorListener, RowSorterListener ইন্টারফেস জেনারেট করতে পারে।
- ডিফল্টভাবে JTable-এর প্রস্থ ফিক্সড, কিন্তু table.getColumnModel().getColumn().setPreferredWidth() মেথড ব্যবহার করে প্রতিটি কলামের প্রস্থ পরিবর্তন করা যায়।
উদাহরণ
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class JTableTest extends JFrame {
private JTable table;
private JScrollPane scrollPane;
private DefaultTableModel model;
private DefaultTableCellRenderer cellRenderer;
public JTableTest() {
setTitle("JTable Test");
setLayout(new FlowLayout());
scrollPane = new JScrollPane();
JTable table = new JTable();
scrollPane.setViewportView(table);
model = (DefaultTableModel)table.getModel();
model.addColumn("S.No");
model.addColumn("First Name");
model.addColumn("Last Name");
model.addColumn("Email");
model.addColumn("Contact");
for(int i = 0;i < 4; i++) {
model.addRow(new Object[0]);
model.setValueAt(i+1, i, 0);
model.setValueAt("Tutorials", i, 1);
model.setValueAt("Point", i, 2);
model.setValueAt("@tutorialspoint.com", i, 3);
model.setValueAt("123456789", i, 4);
}
// প্রতিটি কলামের জন্য কলাম প্রস্থ সেট করুন
table.getColumnModel().getColumn(0).setPreferredWidth(5);
table.getColumnModel().getColumn(3).setPreferredWidth(100);
cellRenderer = new DefaultTableCellRenderer();
cellRenderer.setHorizontalAlignment(JLabel.CENTER);
table.getColumnModel().getColumn(0).setCellRenderer(cellRenderer);
add(scrollPane);
setSize(475, 250);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new JTableTest();
}
}
আউটপুট
