Tag: 渲染器

如何为JTable中的特定行着色

我希望能够突出显示某些JTable行,具体取决于行本身的值。 例如,如果现有的qty < reorder level ,那么该行应该在JTable突出显示。 我知道有一个表方法tblItems.setSelectionBackground(Color.yellow); 在选择行时有效,但有没有类似的方法不依赖于被选中的行以使它们以不同的颜色显示? public class MyTableCellRenderer implements TableCellRenderer { @Override public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Object ob=table.getValueAt(row, column); if(ob.toString().equals(“yes”)){ //need to colour the entire row } return } }

在保持JTable默认渲染器的同时对齐JTable单元格中的文本?

由于这段代码,我有一个JTable可以在着色中做出可爱的变换: table.setDefaultRenderer(Object.class, new BorderRenderer(new ColorRenderer(table .getDefaultRenderer(Object.class), colorProvider))); (这里“colorProvider”包含将每隔一行变为浅灰色的代码。)我有一列我希望将文本对齐到中心。 如果我只是在具有中心水平对齐的列上设置DefaultCellRenderer,它将覆盖表的默认渲染器,并且我会丢失可爱的条纹。 我可以保留条纹并仍然更改列的对齐方式吗? 为了使事情更复杂,我在超类中有上面的代码。 我的子类知道他们想要更改对齐的列。

JTree将节点背景设置为非不透明

请看一下SSCCE。 如何使未选择的树节点的背景透明。 目前,未选择节点的背景为白色。 但是,我的单元格渲染器应该将其绘制为非透明(如果未选中)(选择时为绿色……它的作用)。 最后,我希望未选择的节点只是没有背景的文本,因为SSCCE中红色的区域在我的应用程序中有一个渐变填充。 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; public class SimpleTree extends JFrame { public static void main(final String[] args) { new SimpleTree(); } public SimpleTree() { super(“Creating a Simple JTree”); final Container content = this.getContentPane(); content.setBackground(Color.RED); final Object[] hierarchy […]

Android – 在渲染线程内结束活动

下午好。 我不熟悉android中的活动生命周期并尽可能地阅读,但我无法想出如何以一种很好的方式解决以下问题。 我有一个带有GLSurfaceView的活动,可以在屏幕上绘制各种内容。 在这个GLSurfaceView的渲染线程中,我执行所有渲染以及实际的更新逻辑(我最终会将其分开)。 我遇到的麻烦来自渲染器中绘制的一个“屏幕”我希望结束Activity并让它调用各种生命周期方法。 通常我可以使用System.exit(0)执行此操作; 但是以这种方式结束活动似乎并没有调用OnStop(); 的OnDestroy(); 方法。 这可能只是我愚蠢而没有看到这样做的简单方法,但有没有办法访问Activity并调用activity.finish(); 无需将参考文件一直传递下去? 这可能不是一个Android问题,更像是一般的java问题? 对不起,我两个都有点生疏了。 也许如果有人能够大致解释他们如何在他们的应用程序中处理这样的问题。

使用贝塞尔曲线进行圆近似

我有2个关于贝塞尔曲线的问题,并使用它们来近似圆的部分。 给定单位圆弧(1,0) – >(cos(a),sin(a)),其中0 <a <pi / 2,它将导致该弧的良好近似,以找到贝塞尔曲线的控制点p1 ,p2通过求解要求B(1/3)=(cos(a / 3),sin(a / 3))和B(2/3)=(cos(2a / 3),sin(图2a / 3))。 (换句话说,要求贝塞尔曲线穿过弧中两个均匀间隔的点)。 如果我们有一个仿射变换A,它将圆弧转成椭圆弧,变换的控制点Ap0,Ap1,Ap2,Ap3是否定义了椭圆弧的良好贝塞尔近似? 当然,p0和p3是曲线的起点和终点:(1,0)和(cos(a),sin(a))。 谢谢

如何动态更改JXTreeTable中特定单元格的颜色

我正在使用JXTreeTable制作treetable结构现在我想动态地改变特定单元格的颜色。 如何更改细胞的颜色? 我发现这段代码改变了颜色,但这不起作用。 这是代码: leftTree.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if(Integer.parseInt(rowvalue[0])==row && column==0) { c.setBackground(Color.red); } return c; } });

SwingX JXTable:使用ColorHighlighter根据“行对象”为行着色

我正在使用JXTable,我知道如何基于JTable的DefaultRenderers执行此操作,但我想知道如何以基于HighlighterPipeline的JXTable友好的方式执行此操作。 我有一个表中显示的对象列表,每行代表一个对象。 我想将显示某种类型的对象的行着色为不同的颜色。 看起来我应该使用ColorHighlighter 。 但除了简单的荧光笔之外,我找不到这方面的例子,比如“每排其他颜色”或者其他类似的东西。 我需要行号,因为在JTable / TableModel范例中没有“行对象”这样的东西,但如果我能做到这一点,我可以轻松地测试一个谓词并返回true / false来告诉荧光笔启动或不启动。 有人可以帮我找出正确的方向让它发挥作用吗?

复合JTree节点允许事件传递到下面的对象

我正在尝试创建一个JTree,其中一些节点是包含JLabel和JButton的复合对象。 Node表示JLabel显示的服务器和端口,JButton将使用Desktop API打开默认浏览器并转到URL。 我已经阅读了以下内容,并尽可能地密切关注它们。 节点显示我想要的方式(主要是 – 我可以处理以后更好)但当我尝试点击按钮时,JTree正在响应事件,而不是按钮。 java swing:为JTree项添加自定义图形按钮 http://www.java2s.com/Code/Java/Swing-JFC/TreeCellRenderer.htm https://stackoverflow.com/a/3769158/1344282 我需要知道如何允许事件通过JTree,以便它们由下面的对象(JButton或JLabel)处理。 这是我的TreeCellEditor: public class UrlValidationCellEditor extends DefaultTreeCellEditor { public UrlValidationCellEditor(JTree tree, DefaultTreeCellRenderer renderer) { super(tree, renderer); } @Override public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) { return renderer.getTreeCellRendererComponent(tree, value, true, expanded, leaf, row, true); } @Override public […]

JTable行选择背景问题。

我有一个JTable并在JTable和其他属性中设置图片作为背景我使用了这段代码。 tblMainView= new JTable(dtModel){ public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { Component c = super.prepareRenderer( renderer, row, column); // We want renderer component to be transparent so background image // is visible if( c instanceof JComponent ) ((JComponent)c).setOpaque(false); return c; } ImageIcon image = new ImageIcon( “images/watermark.png” ); public void paint( Graphics g […]

JFreeChart在不同区域的不同颜色为同一dataSeries

在JFreeChart我试图根据y值为XY线图/曲线的不同区域着色。 我正在覆盖XYLineAndShapeRenderer的getItemPaint(int row, int col) ,但是我不确定它如何处理x s之间的线的着色,因为itemPaint在x上获得itemPaint (整数值)。 final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer() { @Override @Override public Paint getItemPaint(int row, int col) { System.out.println(col+”,”+dataset.getY(row, col)); double y=dataset.getYValue(row, col); if(y<=3)return ColorUtil.hex2Rgb("#7DD2F7"); if(y<=4)return ColorUtil.hex2Rgb("#9BCB3B"); if(y<=5)return ColorUtil.hex2Rgb("#FFF100"); if(y<=6)return ColorUtil.hex2Rgb("#FAA419"); if(y<=10)return ColorUtil.hex2Rgb("#ED1B24"); //getPlot().getDataset(col). return super.getItemPaint(row,col); } }