标签: jtableheader

Nimbus TableHeader未突出显示为"已按下"

JTableHaeder默认没有"按下"突出显示.(雨云)

NimbusDefaults表示它有一个默认的[Pressed]背景画家.

当我点击TableHeader时,我该怎么办?

NimbusDefaultPainter


更新1

NimbusStyle.getExtendedState返回压在鼠标按下正确.但是NimbusStyle.getBackgroundPainter(SynthContext)返回null导致CacheKey "backgroundPainter $$实例"nullNimbusStyle.Values缓存中存在此状态.

有什么问题?


更新2

我的示例显示了一个JTableHeader和一个带有"Pressed Behavior"的JScrollBar.

对于JScrollBar,我putClientProperty( "Nimbus.State" )使用重绘问题.

public class Header extends JPanel{

    public Header() {
        super(new BorderLayout());
        JTableHeader header = new JTable(5, 3).getTableHeader();
        JScrollBar   scroll = new JScrollBar(JScrollBar.HORIZONTAL);
        add(header, BorderLayout.NORTH);
        add(scroll, BorderLayout.SOUTH);
        scroll.addMouseListener( new PressedBehavior() );
        header.addMouseListener( new PressedBehavior() );
    }

    static public void main( String[] s ) {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
            SwingUtilities.invokeLater( new Runnable() {
                @Override
                public void run() …
Run Code Online (Sandbox Code Playgroud)

java swing look-and-feel nimbus jtableheader

6
推荐指数
1
解决办法
1115
查看次数

`JTableHeader`可以跨越多个列吗?

我花了很长时间搜索这个,我只找到了GroupableHeader代码.我在2列中需要一个超过2列的标题JTable.如何在不使用臭名昭着GroupableHeader的情况下完成,同时保持`JTableHeader的默认外观?


这是我想到的图形表示:

_________________________
|     Table Header      |
|-----------------------|
|           |           |
|-----------|-----------|
|           |           |
|-----------|-----------|
Run Code Online (Sandbox Code Playgroud)

java swing jtable jtableheader

6
推荐指数
1
解决办法
2403
查看次数

突出显示JTable的列标题

我正在构建一个小JTable,并且当选择一个单元格以便更容易地找到该单元格的关联名称时,我想突出显示列标题(和行标题 - 行标题部分实际上正在工作).这是一张图片:

在此输入图像描述

我已经尝试使用以下方法切换标题的渲染器:

table.getTableHeader().setDefaultRenderer(new ColumnHeaderRenderer());
Run Code Online (Sandbox Code Playgroud)

但是只有当我点击标题并且总是说isSelected为false时才会调用它.

这是我用于行名的代码,包括渲染器内的高亮 - 代码不是由我,我只是修改了一下:

/*
 *  Use a JTable as a renderer for row numbers of a given main table.
 *  This table must be added to the row header of the scrollpane that
 *  contains the main table.
 */
public class RowNameTable extends JTable
        implements ChangeListener, PropertyChangeListener {

    private JTable main;

    public RowNameTable(JTable table) {
        main = table;
        main.addPropertyChangeListener(this);

        setFocusable(false);
        setAutoCreateColumnsFromModel(false);
        setModel(main.getModel());
        setSelectionModel(main.getSelectionModel());

        TableColumn column = new TableColumn();
        column.setHeaderValue(" ");
        addColumn(column);
        column.setCellRenderer(new RowNameRenderer(main)); …
Run Code Online (Sandbox Code Playgroud)

java swing jtable highlight jtableheader

6
推荐指数
2
解决办法
3295
查看次数

按百分比设置JTable的列宽

我需要为a的几列分配固定宽度JTable,然后为所有其他列分配相等的宽度.

假设a JTable有5列.第一列宽度应为100,第二列宽度为150.如果JTable在设置两列宽度后剩余宽度为600,我希望将其均匀分割为其他三列.

问题是table.getParent().getSize().width通常为0,即使它被添加到JFrame和可见,所以我不能用它作为基础.

我该怎么做呢?

java swing percentage jtableheader preferredsize

6
推荐指数
3
解决办法
2万
查看次数

如何获取JTable标头以显示整个列名而不是缩短它们?

我有一个JTable,我填充了一个扩展AbstractTableModel的类.问题是列太短而无法显示列名.我已经关闭了Jtable AutoResizeMode属性,但仍然会发生缩短.我该如何解决这个问题?

java swing jtable text-size jtableheader

5
推荐指数
1
解决办法
1981
查看次数

将ActionListener添加到JTable的列标题

是否可以添加ActionListener到列标题JTable.

这是我的桌子我的桌子图片

现在,我想的添加ActionListener到列标题(例如WQE,SDM)我想是能够显示在另一个窗口中列描述.

java swing jtable actionlistener jtableheader

5
推荐指数
1
解决办法
2万
查看次数

可编辑的JTableHeader

可能重复:
在JTableHeader中访问JTextField

如何使JTableHeader可编辑.我将ColumnHeader作为JTextField.我该怎么做才能使JTextField可编辑.看例子:

import java.awt.*;
import javax.swing.*;

import javax.swing.table.*;

import java.awt.event.*;

public class Test extends JFrame {

String[][] cellValues = { { "v00", "v01", "v02" }, { "v10", "v11", "v12" },
        { "v20", "v21", "v22" }, { "v30", "v31", "v32" },
        { "v40", "v41", "v42" }, { "v50", "v51", "v52" } };
String[] columnNames = { "v00", "v01", "v02" };

javax.swing.JTable jTable1 = new javax.swing.JTable(cellValues, columnNames);

public Test() {
    try {
        jbInit();
    } catch (Exception e) {
        e.printStackTrace();
    }
} …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jtableheader

5
推荐指数
2
解决办法
4982
查看次数

JComboBox无法在JTable TableHeader中扩展

我已经阅读了大多数JTable/JComboBox对此类其他问题的回复,但还没有找到解决我问题的方法.

我创建了一个具有JComboBox TableHeader元素的表.没有任何JComboBox元素将打开以显示项目列表.如何获取要显示的各个JComboBox元素的项目列表?

请注意,此问题的一个显着特征是JComboBox位于TableHeader中,未嵌入JTable单元中.

任何帮助表示赞赏.

SSCE

import java.awt.Component;
import java.awt.Dimension;
import java.util.Enumeration;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;

public class ComboHeaderTest extends JScrollPane {

private static final Dimension DEFAULT_SIZE = new Dimension(200, 200);

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            new ComboHeaderTest().initComponents();
        }
    });
}

private ComboHeaderTest() {

    final String[][] data = { {"Header 1", "Header 2", "Header 3"},
                                {"A", "B", "C"},
                                {"D", …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jcombobox jtableheader

5
推荐指数
1
解决办法
1885
查看次数

Java JTable列标题未显示

嗨伙计们希望你能帮到我这里,我的代码(逻辑方面)很好唯一的问题是列标题没有显示在2个表格中(表格和表格,一个用于教师,一个用于学生详细信息) )我怎么让它们显示?

        import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;


public class Display
{
    ArrayList<Student> stud1 = new ArrayList<Student>();
    ArrayList<SubjectTeacher> sTeach1 = new ArrayList<SubjectTeacher>();

    //For Display Teachers
    private  JTable table;
    private  JFrame f;
    private int i;

    //For DisplayStudents
    private JTable tableS;
    private JFrame fS;
    private int iS;


    //Displays Teachers
    public void displayTeachers()
    {

            f = new JFrame("Teachers");

            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setSize(500,400);
            f.setVisible(true);



        String[] columnNames =  {"Name", "Surname", "ID", "Pay", "Subject"};

        sTeach1 = Stores.getTeach();
        i = sTeach1.size();


        Object[][] data = new …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jscrollpane jtableheader

4
推荐指数
2
解决办法
3万
查看次数

同步两个 JTable 的视图

我有两个JTables,一个在主视口,一个在页脚视口,使用JideScrollPane. 问题是当 mainJTable的视图被自定义时,页脚JTable保持不变,有什么方法可以同步它们的视图吗?

谢谢。

不同步

java swing jtable jtableheader jide

4
推荐指数
1
解决办法
1804
查看次数