我正试图画一条线而无法弄明白。我实际上需要为我的计算机科学实验室绘制一个三角形。我很喜欢编程,离开Horstmann的Big Java书。目前还不清楚如何准确地绘制一些东西,而我只是没有得到它。首先,它引入了一个“EmptyFrameViewer”,并说它显示了一个框架的“必要的丰满”,我可以开始工作。我弹出一个框架,但从未在框架上画任何东西。以下是我的代码,我得到的是500x500帧。谁能帮我?我只想要一条线!一旦我有了一条线,我相信我可以弄清楚如何画出更多的东西。
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class DrawFrame extends JComponent
{
public void lineComponent (Graphics g)
{
Graphics2D g2 = (Graphics g);
Line2D.Double line1 = new Line2D.Double(30, 110, 80, 110);
g2.draw(line1);
}
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(500, 500);
frame.setTitle("BE A LINE");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DrawFrame component = new DrawFrame();
frame.add(component);
frame.setVisible(true);
}
}
答案 0 :(得分:1)
对于自定义绘画,您需要使用paintComponent()
JComponent
方法。尝试通过在代码中添加下一行来更改代码。
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
lineComponent(g);
}
同时将Graphics2D g2 = (Graphics g);
更改为Graphics2D g2 = (Graphics2D) g;
,因为该代码存在编译错误。
答案 1 :(得分:0)
如果您将方法的名称从lineComponent
更改为paintComponent
,则会看到该行将被绘制。
或者您可能想要创建一个单独的paintComponent方法,您可以在其中调用lineComponent。