Java 具有多个控件的jtable自定义标头

Java 具有多个控件的jtable自定义标头,java,swing,jtable,jtableheader,Java,Swing,Jtable,Jtableheader,对不起,我的英语不好:) 我怎样做jtable header,如中所示 我有以下代码: package com.tester; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JScrollPane; import java.awt.BorderLayout; import java.awt.event.Mous

对不起,我的英语不好:) 我怎样做jtable header,如中所示

我有以下代码:

package com.tester;

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;

import java.awt.BorderLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class TableHeaderTester {

    JFrame frame;
    private JTable table;

    public TableHeaderTester() {
        frame = new JFrame();

        JScrollPane scrollPane = new JScrollPane();
        frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
        frame.setBounds(100, 100, 950, 600);

        table = new JTable();
        scrollPane.setViewportView(table);

        DefaultTableModel model = (DefaultTableModel)table.getModel();
        model.addColumn("A", new Object[]{"item1","item2","item3"});
        model.addColumn("B", new Object[]{"item2","item2","item3"});

        String[] values = new String[]{"item1", "item2", "item3"};
        table.getTableHeader().setDefaultRenderer(new SimpleHeaderRenderer(values));

        frame.setVisible(true);
    }
    public static void main(String[] args) {
        new TableHeaderTester();

    }

     }




package com.tester;

import java.awt.Component;

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;

import java.awt.BorderLayout;

import javax.swing.JLabel;
import javax.swing.JCheckBox;
import javax.swing.border.BevelBorder;
import javax.swing.SwingConstants;
import java.awt.Font;

public class SimpleHeaderRenderer extends JPanel implements TableCellRenderer {

    private JComboBox comboBox;
    private JCheckBox chckbxNewCheckBox;
    private JLabel lblNewLabel;

    public SimpleHeaderRenderer(String[] items) {
        setBorder(new BevelBorder(BevelBorder.RAISED, null, null, null, null));
        setLayout(new BorderLayout(0, 0));

        lblNewLabel = new JLabel("Column header title");
        lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 12));
        lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);


        comboBox = new JComboBox(items);


        chckbxNewCheckBox = new JCheckBox("Show in report");


        add(comboBox, BorderLayout.CENTER);
        add(lblNewLabel, BorderLayout.NORTH);
        add(chckbxNewCheckBox, BorderLayout.SOUTH);


    }

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {

        return this;
    }

    public class MyComboBoxEditor extends DefaultCellEditor {
        public MyComboBoxEditor(String[] items) {
            super(new JComboBox(items));
        }
    }


}
如何将功能附加到标题控件? 我在谷歌上搜索我的问题,但找不到答案。 我确信答案是表面的,但决定向知识渊博的人寻求帮助。
我将非常感谢代码示例。

可能会对您有所帮助。这不是我所要求的。