我不知道是什么使它打印了整个十字架,它只打印了左上角
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class RedCross extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
int xCenter = getWidth() / 2;
int yCenter = getHeight() / 2;
g.setColor(Color.RED);
g.fillRect(xCenter, yCenter, 10, 50);
g.fillRect(xCenter, yCenter, 50, 10);
}
public static void main(String[] args){
JFrame window = new JFrame("Red Cross");
window.setBounds(300, 300, 200, 200);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
RedCross panel = new RedCross();
panel.setBackground(Color.WHITE);
Container c = window.getContentPane();
c.add(panel);
window.setVisible(true);
}
}
最佳答案
您似乎正在从中心画出十字架的线,然后向外走。如果这是您要绘制的方式,则需要十字的所有4个“臂”,而不是代码中的两个“臂”。
您可以分别绘制四个“手臂”:
g.fillRect(xCenter-5, yCenter, 10, 50);
g.fillRect(xCenter-5, yCenter-50, 10, yCenter);
g.fillRect(xCenter-50, yCenter-5, 50, 10);
g.fillRect(xCenter, yCenter-5, 50, 10);
这将使一个宽度为100px且高度为100px的红叉居中。
关于java - 程序RedCross.java应该在白色背景上显示一个红叉。只是在十字架的左上方,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21048126/