因此,我试图绘制一个标签,其中包含一个显示圆圈的图标。圆圈最初将被填充为红色,然后根据我按下的三个按钮中的哪个按钮,将使用重绘将其更改为绿色,蓝色或红色。
这是我到目前为止的内容:
public class ColorChanger implements Icon {
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame myFrame = new JFrame();
JButton redButton = new JButton("Red");
JButton greenButton = new JButton("Green");
JButton blueButton = new JButton("Blue");
Graphics g;
ColorChanger myCircle = new ColorChanger();
final JLabel myLabel = new JLabel(myCircle);
// myCircle.paintIcon(myFrame, g, 50, 50);
final int FRAME_WIDTH = 300;
final int FRAME_HEIGHT = 200;
myFrame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
myFrame.setLayout(new FlowLayout());
myFrame.add(redButton);
myFrame.add(greenButton);
myFrame.add(blueButton);
myFrame.add(myLabel);
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.pack();
myFrame.setVisible(true);
}
@Override
public int getIconWidth() {
// TODO Auto-generated method stub
return 10;
}
@Override
public int getIconHeight() {
// TODO Auto-generated method stub
return 10;
}
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
// TODO Auto-generated method stub
Graphics2D g2 = (Graphics2D) g;
Ellipse2D.Double circle = new Ellipse2D.Double(50, 50, 10, 10);
g2.setColor(Color.RED);
g2.fill(circle);
}
}
我的问题是,我不知道在paintIcon中如何传递Graphics g。有其他方法可以做到这一点吗?我对此表示感谢。
Ellipse2D.Double circle = new Ellipse2D.Double(50, 50, 10, 10);
图标的大小为(10,10)。50,超出了Icon的范围。相对于图标完成绘制,因此椭圆应为:
Ellipse2D.Double circle = new Ellipse2D.Double(0, 0, 10, 10);
使用重绘它将变为绿色,蓝色或红色。
您的ColorChanger类将需要一个setColor(Color color)
方法,以便您可以动态更改要绘制的颜色。然后,paintIcon()方法应使用此颜色。
问题内容: 我在某些项目上使用了超棒的字体,但是我想对 超棒的字体图标做一些事情,我可以像这样轻松地调用一个图标: 是否有可能所有图标始终都带有边框的圆形?事情是这样的,我有一个画面: Using 会产生效果,但问题是图标总是比 旁边的文本或元素大,有解决方案吗? 问题答案: i.fa {
问题内容: 我只想在鼠标单击后绘制圆圈。由于paintComponent方法调用了自身,因此首先绘制圆而无需单击。 问题答案: 您的代码存在一些问题: 你永远不会打电话 你只需要一个和 请注意,当您调整框架大小时,某些圆圈将消失,并且总体上以奇怪的方式表现。 我会将所有s 存储在用户单击的位置,然后在方法内部遍历该列表。这样您就可以通话,而圈子不会消失。 更改后的工作代码:
我有一组数据,我正在分散地绘制。当我将鼠标滑过其中一个圆圈时,我希望它弹出数据(比如x、y值,可能更多)。以下是我尝试使用的: 我想我需要更多关于输入什么数据的信息?
我试着把第二个播放器放在一个有圆角的框架内(这个答案和这个答案),但是播放器总是会跳出父框架并绘制视频的完整矩形。 我发现这个解决方案使用GLSurfaceView,但是这个解决方案使用经典的MediaPlayer而不是ExoPlayer。
我在一些项目上使用字体真棒,但我有一些事情,我想用字体真棒图标做,我可以很容易地调用这样的图标: 所有图标是否可能始终处于带边框的圆形中?像这样,我有一张照片: 使用 会产生效果,但问题是图标总是比旁边的文本或元素大,有什么解决方案吗?
我正在尝试制作重力的效果,但它看起来只是有越来越多的圆圈条纹,而不是单个圆圈向下移动。我不知道如何删除我已经绘制的圆圈。顺便说一句,代码中没有错误。