【问题标题】:Color Grid: figure out which box was clicked颜色网格:找出点击了哪个框
【发布时间】:2013-06-10 19:46:22
【问题描述】:

我的问题涉及颜色网格 teechart。我正在尝试编写代码,以便当用户触摸网格上的框时,只有该框的颜色会改变。我发现使用 chart.getHeight() 和 chart.getWidth() 给出了图表的整个区域,而不仅仅是颜色网格尺寸。所以现在,我正在估计网格的长度和宽度(以像素为单位)来估计用户触摸的框。有什么方法可以计算出颜色网格长度和高度的确切像素数量?此外,我注意到 Color Grid api 中有一个“点击”方法。有没有内置的东西可以让我找到用户触摸/点击的框?谢谢!

【问题讨论】:

    标签: java android teechart


    【解决方案1】:

    我制作了一个使用 seriesClicked 事件的简单示例。但是,它似乎给出了正确的索引,但彩色单元格似乎在相反的行:

        oldIndex = -1;
        tChart1.getAspect().setView3D(false);
        tChart1.getLegend().setVisible(false);
    
        ColorGrid col1 = new ColorGrid(tChart1.getChart());
        col1.setColorEach(true);
        for (int x=0; x<10; x++)
            for (int z=0; z<10; z++)
                col1.add(x, 1, z, Color.random());
    
        col1.addSeriesMouseListener(new SeriesMouseAdapter() {      
            @Override
            public void seriesClicked(SeriesMouseEvent e) {
                ColorGrid myGrid = (ColorGrid)tChart1.getSeries(0);
                int valueIndex = myGrid.clicked(e.getPoint().x, e.getPoint().y);
                if (valueIndex > -1) { 
                    if (oldIndex > -1) {
                        myGrid.getColors().setColor(oldIndex, oldColor);
                    }
                    oldIndex = valueIndex;
                    oldColor = myGrid.getValueColor(valueIndex);
                    myGrid.getColors().setColor(valueIndex, Color.red);
                    tChart1.getHeader().setText(String.valueOf(valueIndex));
                    tChart1.getSeries(0).repaint();
                }
            }
    });
    

    我将在缺陷列表中添加需要修改 ColorGrid 的单击功能 (TJ71016603)

    同时,一种解决方法是修改给定的 valueIndex,如下所示:

    if (valueIndex > -1) {
        valueIndex = valueIndex / myGrid.getNumZValues() * myGrid.getNumZValues() + (myGrid.getNumZValues()-1 - (valueIndex % myGrid.getNumZValues()));
        if (oldIndex > -1) {
        //...
    }
    

    【讨论】:

    • 谢谢!另外,如果这对任何人都有帮助,我使用 calcXPosValue(double arg) 和 calcYPosValue(double arg) 来计算轴的确切长度
    猜你喜欢
    • 2012-11-13
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 2011-12-23
    相关资源
    最近更新 更多