[英]Adding a Web Browser in a JFrame/JPanel/JComponent in Java
[英]Java, JFrame, JComponent, Rectangles
这是完全相同的代码的两个实例,它们绘制了沿对角线叠置的一堆矩形,但在第二个实例中,x和y值的“ i ^ 2”周围都有括号。 我认为在两种情况下矩形都应从(0,0)开始,但在第一种情况下,它们不应从原点开始。 相反,它们从起点开始略有偏离。 将矩形添加到JFrame时为什么会有区别?
使用javax.swing.JComponent javax.swing.JFrame和java.awt.Rectangle
for(int i=0;i<600;i++){
Rectangle rect1 = new Rectangle(20*i^2, 20*i^2, 50, 100);
g2.draw(rect1);
}
for(int i=0;i<600;i++){
Rectangle rect1 = new Rectangle(20*(i^2), 20*(i^2), 50, 100);
g2.draw(rect1);
}
我的代码分为两个类。 这是主要的类:
import javax.swing.JFrame;
public class MainClass {
public static void main(String[] args){
JFrame window = new JFrame();
window.setSize(600,600);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DrawingComponent drawing = new DrawingComponent();
window.add(drawing);
window.setVisible(true);
}
}
这是用于使Rectangles添加到JFrame的DrawingComponent类的代码:
import javax.swing.JComponent;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
public class DrawingComponent extends JComponent{
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
for(int i=0;i<600;i++){
Rectangle rect1 = new Rectangle(20*i^2, 20*i^2, 50, 100);
g2.draw(rect1);
}
}
}
表达式20*i^2
与20*(i^2)
。
按位XOR运算符^
优先级低于乘法*
,因此两个表达式将产生不同的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.