如何删除Jtable标题网格线,我可以从行中删除网格线,但它在Jtable标题中给出了网格线。是否可以删除Jtable标题网格线。
也许你可以使用UIManager做到这一点
UIManager.getDefaults().put("TableHeader.cellBorder" , BorderFactory.createEmptyBorder(0,0,0,0));
注意:这不会更改一个 JTable 的 TableHeader 单元格边框,但会更改应用程序中所有 JTable 的 TableHeader 单元格边框。这是因为您正在更改管理整个应用程序的外观的属性。因此,所有TableHeader.cellBorder
都被修改了。
请参阅不带网格线的 JTableHeader:
table.setShowGrid(false);
table.setIntercellSpacing(new Dimension(0,0));
您可能还需要查看之前(更长时间)的答案。
下面的代码(来自上面的链接)显示了一个没有网格线的< code>jTable(在表格或标题中)
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableHeaderTest
{
public static void main(String[] args)
{
String[] headers = {
"column 1", "column 2", "column 3", "column 4"
};
String[][] data = new String[4][4];
for(int i = 0; i < data.length; i++)
for(int j = 0; j < data[0].length; j++)
{
data[i][j] = "item " + (i * data[0].length + j + 1);
}
JTable table = new JTable(data, headers);
for(int i = 0; i < headers.length; i++)
{
TableColumn column = table.getColumnModel().getColumn(i);
column.setHeaderRenderer(new HeaderRenderer());
}
table.setShowGrid(false);
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new JScrollPane(table));
f.setSize(400,300);
f.setLocation(200,200);
f.setVisible(true);
}
}
class HeaderRenderer extends JLabel implements TableCellRenderer
{
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean hasFocus,
boolean isSelected,
int row,
int col)
{
setText(value.toString());
setBorder(BorderFactory.createEmptyBorder(2,2,2,2));
return this;
}
}
是否可以删除JTable标头网格行。
只是好奇:你为什么要这样做?
现在的答案是:不,它不是。表头呈现依赖于外观和感觉提供的 TableHeaderUI 实现以及 JTableHeader 的呈现器。您可以告诉渲染器您不需要边框,但如果L
如其他答案中所述,尽管存在(糟糕的)变通方法,但所有这些方法都有其局限性。
为了使表格标题的呈现尽可能与原始呈现最相似,这意味着没有丢失列DnD效果,应用排序时的图标等,我会使用我自己的渲染器,如下所示:
public class TableHeaderRenderer implements TableCellRenderer {
private final TableCellRenderer baseRenderer;
public TableHeaderRenderer(TableCellRenderer baseRenderer) {
this.baseRenderer = baseRenderer;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JComponent c = (JComponent)baseRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
c.setBorder(new EmptyBorder(2,2,2,2));
return c;
}
}
然后可以使用默认渲染器作为新渲染器的基础,如下所示:
JTable table = new JTable(5, 5);
table.setAutoCreateRowSorter(true);
table.setShowGrid(false);
TableCellRenderer baseRenderer = table.getTableHeader().getDefaultRenderer();
table.getTableHeader().setDefaultRenderer(new TableHeaderRenderer(baseRenderer));
然而,其功能取决于L
正如@blackbishop所述,您可以使用UIManager设置一个属性来告诉L
如何注释我header.php中的标语? 我正在使用2014年的主题,并试图遵循WordPress codex中的元标签说明。要生成一个描述元标记,它会指示您将描述添加到标语中。但是这个标语显示在我打开网页的每个窗口/选项卡的顶部(以及我的网站名称)。要隐藏标语,WordPress建议“删除或注释掉标头区域的标签”我做这个有困难。我在header.php?中到底要评论什么,我在标题中没有看到任何带
我有几个Kafka的题目作为测试。现在我想通过清理我的Kafka主题列表来把它们全部除掉。我设置了变量,然后停止并重新启动zookeeper和kafka服务器。但什么也帮不了我。主题仍然存在,“标记为删除”。我读了这个问题,但没有找到任何答案。否则,这里建议手动移除任何主题。但我该怎么做呢?在故事的结尾,手动或通过命令行,我如何永久删除Kafka主题?
我正在用java创建一个没有数据库的库系统程序。(直接使用文件)。 我在删除jtable中的一行时遇到了一个奇怪的问题(也就是从文件中删除)。 有时当我在表格中选择一行并单击删除按钮时,不止一行被删除了! 大多数时候它也能正常工作!! 我的代码: 我的模型类: 用户信息类别: 我的文本文件:
问题内容: 我正在尝试隐藏JTable的网格线,但没有结果。即使尝试更改网格线的颜色也不起作用。这是我的代码: 始终绘制白色网格线。我被困在这里… 我是否必须实现自定义视口才能摆脱这种情况? 预先感谢,亚历克斯 问题答案: 你必须设置两个东西 禁用网格显示 零行/列小区间间距 在代码中: 或使用JXTable(来自SwingX项目)为您执行此操作:
问题内容: 我正在使用以下代码进行练习, http://docs.oracle.com/javase/tutorial/uiswing/examples/layout/BorderLayoutDemoProject/src/layout/BorderLayoutDemo.java 我也加 在createAndShowGUI()方法中, 而且,我希望此窗口不具有标题栏,关闭和最小化按钮。 我尝试了以
我在一个文件夹中有两个csv文件,如下所示:文件1: 文件 2: 我想从文件夹中读取文件,然后删除标题名称(col1,col2),然后将行更改为列,将列更改为行,这意味着转置它并将这两个文件合并到一个新的csv文件中,如下所示: