Skip navigation.

mg12's Blog

paint my world ...

Posts tagged with "Java"

用 HTML 来解决预览问题

, ,

本来想用 JTable 来做的, 但在 JTable 中合并单元格适合并没有想像中容易.
找了一天的资料, 连签名都改成了 "How to merge cells in a JTable ?", 但还是没有解决.
后来在 JEditorPane 中用 HTML 来显示这部分内容, 而导出的时候就不可以直接对它上面的数据进行处理了, 所以重写了部分代码.
效果如下:

让 JTable 不显示表头

, ,

现在要处理一些 Excel 报表, 想要做一个没有表头的 JTable.
资料不好找, 网上找到了 3 种处理的方法:


1. 不放在 JScrollPane 上, 但是需要给表加个边框. [ 来源 ]
table.setBorder(BorderFactory.createEtchedBorder());

panel.add(table);

缺点: 没有滚动条.


2. 放在 JScrollPane 上, 但是把表头隐藏. [ 来源 ]
table.getTableHeader().setVisible(false);

tableScrollPane.setViewportView(table);
panel.add(tableScrollPane);

缺点: 在本来表头的位置出现一片空白, 难看.
改进: 如果在前面将表头内容全部设为 "", 就可以去掉这片空白, 效果和 3 一样.
tableHeader = new String[]{"", "", "", "", "", "", "",""};
table = new JTable(tableData, tableHeader);
table.getTableHeader().setVisible(false);

tableScrollPane.setViewportView(table);
panel.add(tableScrollPane);



3. 为表头设置一个 CellRenderer, 这个 CellRenderer 的预选高度为 0. [ 来源 ]
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setPreferredSize(new Dimension(0, 0));
table.getTableHeader().setDefaultRenderer(renderer);

tableScrollPane.setViewportView(table);
panel.add(tableScrollPane);

这是目前我正在用的, 正是我想要的效果.

Java 中监听组合键

,

毕业设计中...
现在想模仿 Gajim 发送文本区的处理方法.
就是当发送文本区内有内容的时候, 只要键入 Enter 就能发送信息, 而 Ctrl+Enter 则是换行.
但是 Java 似乎不提供监听组合键的方法, 或许是我没找到.
所以用 "java ctrl enter" 到 Google 搜了一下, 问的人多, 答的人少.
没找着, 算了, 还得自己想. 想了个笨方法, 但还能用...

Read more...