你如何在Eclipse中用Java绘制一条线?

时间:2014-02-02 21:29:08

标签: java eclipse swing draw

我正试图画一条线而无法弄明白。我实际上需要为我的计算机科学实验室绘制一个三角形。我很喜欢编程,离开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);

}

}

2 个答案:

答案 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。