相关疑难解决方法(0)

带有标题行和列的JTable

我怎样才能有一个JTable,列和行都有标题?
这样的事情:

+------+------+------+------+
|/\/\/\| col1 | col2 | col3 |
+------+------+------+------+
| row1 |      |      |      |
+------+------+------+------+
| row2 |      |      |      |
+------+------+------+------+
| row3 |      |      |      |
+------+------+------+------+
Run Code Online (Sandbox Code Playgroud)

谢谢

java swing jtable

9
推荐指数
1
解决办法
8702
查看次数

JScrollPane - 滚动时的视觉故障

在滚动时,有一些关于JScrollPane中类似故障的主题:

但他们缺乏SSCCE和案件的一些解释,所以我将添加缺少的东西.

首先,这是一个在纯Swing上编写的小例子,没有使用第三方代码:

public class ScrollGlitchExample extends JFrame
{
    public ScrollGlitchExample () throws HeadlessException
    {
        super ();

        final JPanel top = new JPanel ();
        top.setPreferredSize ( new Dimension ( 300, 50 ) );
        top.setBorder ( BorderFactory.createLineBorder ( Color.BLACK ) );
        add ( top, BorderLayout.NORTH );

        final JPanel panel = new JPanel ( new GridLayout ( 500, 1 ) );
        for ( int i = 0; i < 500; i++ )
        {
            panel.add ( new JButton ( …
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane

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

交互式JTable

我想创建一个交互式JTable.为此,我想在表格的单元格中添加JPanels.一旦JPanels进入单元格,我就可以将各种组件添加到JPanels中,从而使表格具有交互性.每个JPanel可以有不同的组件.是否可以实现此目的,只需要创建1个表格单元格编辑器和1个表格单元格投标器.有谁知道更好的方法吗?

谢谢

编辑:感谢您的回复.我实际上已经有了一个我正在使用的框架.我只需要一个用户可以拖放图像,播放电影,显示图形等的JTable ......我已经具备了执行这些功能的功能,我只需要一个JPanel来添加它们.我希望它显示在JTable中,以便可以对单元格进行排序,移动,添加/删除行/列,以及结构良好.我无法使用JTable工作,所以我继续创建自己的.它只是一个JPanel,它包含使用GridLayout的较小的JPanel(表格单元格).它适用于我的目的.从表头上重写所有功能只是一种痛苦.

java swing jtable

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

创建条目列表并使每个条目可单击

我正在尝试创建一个有两个窗格的UI.

在左侧窗格中,我显示文件列表,右窗格显示内容.

现在,我希望左窗格中的文件列表看起来像普通列表.但是,当我单击此列表中的条目时,特定文件的内容应显示在右侧窗格中.

如何使用Swing实现这一目标?

java swing list jtree jlist

3
推荐指数
1
解决办法
7083
查看次数

重写JTable的DefaultTableCellRenderer以使JTable中的所有单元居中

我有一个问题,我无法摆脱.

你知道,我对使用JTables相当新,所以答案可能很简单,但我找不到解决方案:/

所以,我有一个使用AbstractTableModel的JTable,它覆盖了

    public Class<?> getColumnClass(int columnIndex_p) 
Run Code Online (Sandbox Code Playgroud)

方法,告诉要显示的每列的类型.其中一个是布尔值.

当我创建一个简单的JTable时,使用

    table_l = new JTable(new MyTableModel());
Run Code Online (Sandbox Code Playgroud)

一切都很好,并使用复选框(开/关)正确显示布尔值.

现在,我想将文本集中在每个单元格上(以后可能会有更多选项).

所以我为每一列定义了一个新的DefaultTableCellRenderer,如下所示:

    DefaultTableCellRenderer cellRenderer_l = new DefaultTableCellRenderer() {
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
          // delegate the rendering part to the default renderer (am i right ???)
          Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
          return comp;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后我只需将此CellRender的水平对齐设置为:

    cellRenderer_l.setHorizontalAlignment(JLabel.CENTER);
Run Code Online (Sandbox Code Playgroud)

然后我在JTable的每一列上安装这个新的CellRenderer:

    for (int i = 0; i < table_l.getColumnCount(); ++i) {
        table_l.getColumnModel().getColumn(i).setCellRenderer(cellRenderer_l);
    }
Run Code Online (Sandbox Code Playgroud)

但是,使用新的CellRenderer,显示的JTable不再使用我的TableModel的getColumnClass()方法,因此只在布尔值上显示"true/false"字符串. …

java swing jtable renderer

3
推荐指数
1
解决办法
6691
查看次数

如果不可见,TableModel fire方法很昂贵

在java swing tablemodel中,我们可以触发表更改,添加,删除等.我想知道如果组件不可见,这些方法调用是否很昂贵?

例如,另一个窗口覆盖它.或者它处于非活动选项卡中.

java swing tablemodel

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

创建缩略图的正确方法是什么?

我正在尝试使用 using 创建一些数据的缩略图图表JScrollPane,但遇到性能困难。此示例有大约 100 个缩略图,每个缩略图有 5000 个样本。当我尝试向下滚动并返回向上多次时,滚动会出现延迟,CPU 负载增加,应用程序内存使用量达到超过 500 Mb。

有没有办法在不减少数据的情况下避免此性能问题?

在此输入图像描述

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.util.Random;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.ThermometerPlot;
import org.jfree.data.general.DefaultValueDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

public class ThumbnailChartsTest extends JPanel {
private static final int W = 200;
private static final int H = W;
private static final int N = 5000;
private static final Random random = new Random();

private static …
Run Code Online (Sandbox Code Playgroud)

java swing thumbnails jfreechart jscrollpane

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