有几次我因为建议使用以下方法而受到批评:
在Swing组件上.当我想在显示的组件之间定义比例时,我没有看到任何替代它们的用法.我被告知这个:
对于布局,答案总是相同的:使用合适的LayoutManager
我在网上搜索了一下,但我没有找到任何关于这个主题的综合分析.所以我有以下问题:
我正在写一个Mandelbrot分形观察器,我想以聪明的方式实现色彩循环.给定一个图像,我想修改它的IndexColorModel.
据我所知,没有办法修改IndexColorModel,并且无法为图像提供新的IndexColorModel.事实上,我认为没有办法提取其颜色模型或图像数据.
似乎唯一的解决方案是保持用于创建图像的原始图像数据和调色板,手动创建具有旋转颜色的新调色板,创建新的IndexColorModel,然后从数据创建一个全新的图像和新的颜色模型.
这一切似乎都是太多的工作.有更简单快捷的方式吗?
这是我能想到的最佳解决方案.此代码创建一个1000x1000像素的图像,并显示以每秒约30帧的速度循环的颜色动画.
(旧)
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
public class ColorCycler {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
private static void createAndShowGUI() {
JFrame jFrame = new JFrame("Color Cycler");
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.add(new MyPanel());
jFrame.pack();
jFrame.setVisible(true);
}
}
class MyPanel extends JPanel implements ActionListener {
private byte[] reds = new byte[216];
private byte[] greens = new byte[216];
private byte[] blues = new byte[216];
private final …Run Code Online (Sandbox Code Playgroud) 我有chart.png,其中有数据,我想用一些标签放一个简单的X - Y轴.我也想尝试不使用任何没有java附带的外部软件.我被允许使用jfreechart但是如果有一种方法可以让它看起来不错,而只是使用一些计划java代码,那会更好.有没有人对如何做这类事情有个好主意?
更新:这样的东西,但数据将用rgb值进行颜色编码,当然没有轴/标签.
pyplot延迟示例http://www.goldb.org/goldblog/cmg_images/pylot_latency_sample.png
这个图只是一个例子,它看起来与我的实际图形看起来一样......我的真实图形中可以包含每个rgb颜色值.我知道如何创建情节,我只是不知道如何将轴/标签放在BufferImage我创建的那个上
我想创建一个带有值的栏.如果我移动圆圈,那么该字段中的值应该更改.我怎样才能做到这一点?这是屏幕截图.我怎样才能实现这一目标?
类似的东西也可以.请帮我解决一下这个.先感谢您 :)

我想画一些线条.问题是关于颜色.例如.我有几行红色,而且我画了一行蓝色(或反转).有时,那些更多的线条对于最后一个线条是不透明的.
我尝试制作新的颜色并使用alpha复合材料设置颜色0.7 - 对于那些更多的线条,我保留一种颜色默认 - 不透明(alpha 1.0).起初我绘制了更多的线条,而不是最后一条线条.但那条线"覆盖"那一条.有没有解决这个问题的解决方案?
我在玻璃窗上画出那条线.
编辑:该代码是健壮的,因此很难发布它,它是论文的一部分.原理是2色,例如Color basicColor; 颜色相似颜色;
比我有绘画方法和2个哈希图作为属性 - 存储了一些点.我迭代这个地图,记住一点和他相似,所有其他点连接graphics2D.drawLine(x1,y1,x2,y2),然后改变颜色并用另一种颜色绘制最后一行.我也在修改中风,使其更显着.
我希望它足够......
edit2: 我有一些Point similarPoint而不是一些强大的paint方法,这里是图形修改迭代器迭代点列表的列表.
Point similar = null;
Iterator<Point> secondIterator;
graphics.setColor(colorOfSimilar);
while (iterator.hasNext()) {
Point point = iterator.next();
if (point.equals(similarPoint)) {
similar = similarPoint;
} else {
secondIterator = secondMap.get(point).iterator();
while (secondIterator.hasNext()) {
Point secondPoint = secondIterator.next();
graphics2D.drawLine(point.getX(), point.getY(),
secondPoint.getX(), secondPoint.getY());
}
}
}
if (similar != null) {
secondIterator = secondMap.get(similar);
graphics2D.setColor(hooverColor);
graphics2D.setStroke(new BasicStroke(2.5f));
while (secondIterator.hasNext()) {
Point secondPoint = secondIterator.next();
graphics2D.drawLine(similar.getX(), similar.getY(),
secondPoint.getX(), …Run Code Online (Sandbox Code Playgroud) java ×5
swing ×4
axis-labels ×1
colors ×1
drawing ×1
image ×1
jfreechart ×1
jslider ×1
performance ×1
png ×1