JTableHeader
- একটি JTableHeader হল JComponent ক্লাসের একটি সাবক্লাস।
- যখন আমরা একটি JTable অবজেক্ট তৈরি করি, তখন কনস্ট্রাক্টর টেবিল কম্পোনেন্টের হেডার পরিচালনার জন্য একটি নতুন JTableHeader অবজেক্ট তৈরি করে।
- JTableHeader অবজেক্ট টেবিল কম্পোনেন্টের কলাম মডেল-এর সাথে যুক্ত থাকে যাতে এর UI ডেলিগেট কলামগুলো ড্র্যাগ করতে পারে এবং প্রতিটি কলামের হেডার সেল রেন্ডার করতে পারে।
- একটি JTable setTableHeader() মেথড সরবরাহ করে যা টেবিল হেডার কম্পোনেন্টের JTableHeader অবজেক্ট প্রতিষ্ঠা করে এবং একটি getTableHeader() মেথড যা টেবিল হেডার কম্পোনেন্টের JTableHeader অবজেক্টের রেফারেন্স রিটার্ন করে।
ডিফল্ট টেবিল মডেল ক্লাস বা অ্যাবস্ট্রাক্ট টেবিল মডেল ক্লাস কাস্টমাইজ করে JTable-এর ওয়ার্ড-র্যাপ টেবিল হেডার বাস্তবায়ন করা যায়।
উদাহরণ
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class WordWrappingTableHeaderTest extends JFrame {
private JTable table;
public WordWrappingTableHeaderTest() {
setTitle("WordWrappingTableHeader Test");
DefaultTableColumnModel tableColumnModel = new DefaultTableColumnModel() {
public void addColumn(TableColumn column) {
column.setHeaderRenderer(new JTableHeader().getDefaultRenderer());
super.addColumn(column);
}
};
table = new JTable();
table.setFillsViewportHeight(true);
table.setColumnModel(tableColumnModel);
table.setModel(new DemoTableModel(Arrays.asList("Word Wrapping TableHeader Test", "Word Wrapping TableHeader Test", "Word Wrapping TableHeader Test"), 20));
add(new JScrollPane(table));
setSize(450, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setLocationRelativeTo(null);
setVisible(true);
}
class DemoTableModel extends AbstractTableModel {
private ArrayList wrappedColumnNames = new ArrayList();
private int numRows;
DemoTableModel(List columnNames, int numRows) {
for (String name: columnNames)
wrappedColumnNames.add("" + name + "");
this.numRows = numRows;
}
public int getRowCount() {
return numRows;
}
public int getColumnCount() {
return wrappedColumnNames.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
return Integer.valueOf(10000 + (rowIndex + 1)*(columnIndex + 1));
}
public String getColumnName(int column) {
return wrappedColumnNames.get(column);
}
public Class> getColumnClass(int columnIndex) {
return Integer.class;
}
}
public static void main(String[] args) {
new WordWrappingTableHeaderTest();
}
}
আউটপুট
