我正在尝试在OSX上创建一个带有Java的半透明窗口并添加一个JLabel.
这JLabel会每秒改变它的文字......

然而,该组件不能很好地重新粉刷.
我怎么解决这个问题?
如果可能的话,请粘贴修复源代码,这是我的:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Font;
import java.util.Timer;
import java.util.TimerTask;
public class Translucent {
public static void main( String [] args ) {
JFrame frame = new JFrame();
frame.setBackground( new Color( 0.0f,0.0f,0.0f,0.3f));
final JLabel label = new JLabel("Hola");
label.setFont( new Font( label.getFont().getFamily(), Font.PLAIN, 46 ) );
label.setForeground( Color.white );
frame.add( label );
frame.pack();
frame.setLocationRelativeTo( null );
frame.setVisible( true );
Timer timer = new …Run Code Online (Sandbox Code Playgroud) 我想画一些线条.问题是关于颜色.例如.我有几行红色,而且我画了一行蓝色(或反转).有时,那些更多的线条对于最后一个线条是不透明的.
我尝试制作新的颜色并使用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)