কম্পিউটার টিউটোরিয়াল

জাভাতে JTable সেলে JButton যোগ/ইনসার্ট করা

JTable হলো JComponent ক্লাসের একটি সাবক্লাস এবং এটি একাধিক সারি ও কলামে তথ্য প্রদর্শনকারী টেবিল তৈরিতে ব্যবহৃত হয়। JTable থেকে একটি ভ্যালু সিলেক্ট হলে TableModelEvent জেনারেট হয়, যা TableModelListener ইন্টারফেস বাস্তবায়ন করে হ্যান্ডেল করা হয়। DefaultTableModel বা AbstractTableModel কাস্টমাইজ করে বা TableCellRenderer ইন্টারফেস বাস্তবায়ন করে এবং getTableCellRendererComponent() মেথড ওভাররাইড করে JTable সেলে JButton যোগ বা ইনসার্ট করা যায়।

উদাহরণ

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.table.*; 
public class JTableButtonTest extends JFrame { 
    private JTable table; 
    private JScrollPane scrollPane; 
    public JTableButtonTest() { 
        setTitle("JTableButton Test"); 
        TableCellRenderer tableRenderer; 
        table = new JTable(new JTableButtonModel()); 
        tableRenderer = table.getDefaultRenderer(JButton.class); 
        table.setDefaultRenderer(JButton.class, new JTableButtonRenderer(tableRenderer)); 
        scrollPane = new JScrollPane(table); 
        add(scrollPane, BorderLayout.CENTER); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        setLocationRelativeTo(null); 
        setSize(400, 300); 
        setVisible(true); 
    } 
    public static void main(String[] args) { 
        new JTableButtonTest(); 
    } 
} 
class JTableButtonRenderer implements TableCellRenderer { 
    private TableCellRenderer defaultRenderer; 
    public JTableButtonRenderer(TableCellRenderer renderer) { 
        defaultRenderer = renderer; 
    } 
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
        if(value instanceof Component) 
            return (Component)value; 
        return defaultRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    } 
} 
class JTableButtonModel extends AbstractTableModel { 
    private Object[][] rows = {{"Button1", new JButton("Button1")},{"Button2", new JButton("Button2")},{"Button3", new JButton("Button3")}, {"Button4", new JButton("Button4")}}; 
    private String[] columns = {"Count", "Buttons"}; 
    public String getColumnName(int column) { 
        return columns[column]; 
    } 
    public int getRowCount() { 
        return rows.length; 
    } 
    public int getColumnCount() { 
        return columns.length; 
    } 
    public Object getValueAt(int row, int column) { 
        return rows[row][column]; 
    } 
    public boolean isCellEditable(int row, int column) { 
        return false; 
    } 
    public Class getColumnClass(int column) { 
        return getValueAt(0, column).getClass(); 
    } 
}

আউটপুট

জাভাতে JTable সেলে JButton যোগ/ইনসার্ট করা

  1. জাভাতে JTable সেলের ভিতরে JCheckBox কীভাবে যোগ/ইনসার্ট করবেন?

  2. জাভাতে JButton-এ HTML টেক্সট কীভাবে বাস্তবায়ন করবেন?

  3. জাভাতে JButton-এ শর্টকাট কী কীভাবে সেট করবেন?

  4. জাভাতে JMenu থেকে JTabbedPane-এ নতুন ট্যাব কীভাবে যোগ করবেন?