gpt4 book ai didi

Java drawLine() 不工作

转载 作者:行者123 更新时间:2023-11-30 03:16:15 28 4
gpt4 key购买 nike

我需要有关此代码的帮助。我的 g.drawLine(0,0,300,300) 不起作用。一直工作到周一,不知道出了什么问题。我使用 g.drawLine(0,0,300,300) 来在使用plota_pixel()方法之前进行测试。 g.drawLine(0,0,300,300) 应该在 Jpanel 面板上打印从 (0,0) 到 (300,300) 的一条线

主视图类:

package alexandre.VIEW;

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class MainView {

private JFrame janela;
public JPanel panel;


public MainView()
{
janela = new JFrame("Exercicio 15/09");
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
this.ShowView();
}

public void ShowView()
{
janela.pack();
janela.setSize(750,600);
janela.setLayout(null);
janela.add(panel);
panel.setBounds(0,0,710,600);


janela.setVisible(true);
System.out.println("OIdsazxc");
Graphics g = panel.getGraphics();
g.setColor(Color.BLACK);
g.drawLine(0,0,300,300);

}

public void plota_pixel(int x, int y)
{
Graphics g = panel.getGraphics();
g.drawLine(x, y, x, y);

}

}

入门类(class):

package alexandre.CONTROL;

import alexandre.VIEW.MainView;


public class Starter {

public static void main(String[] args) {

MainView view = new MainView();
view.ShowView();

}

}

最佳答案

使用 panel.getGraphics() 中的 Graphics 对象进行绘图不起作用(请参阅下面的链接了解“原因”)。您必须重写 JPanel 的“paintComponent”方法,其中输入参数是 Graphics 对象

(另请注意 - 标准方法命名的第一个字母小写,因此 ShowView() 应该是 showView())

public MainView()
{
janela = new JFrame("Exercicio 15/09");
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel() {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.drawLine(0,0,300,300);
}
};
this.showView();
}


public void showView() {
janela.pack();
janela.setSize(750, 600);
janela.setLayout(null);
janela.add(panel);
panel.setBounds(0, 0, 710, 600);
panel.setVisible(true);

janela.repaint();
}

查看以下堆栈溢出问题

Drawing an object using getGraphics() without extending JFrame

还有这个资源(它也在链接的问题中)

http://docs.oracle.com/javase/tutorial/uiswing/painting/

关于Java drawLine() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32526389/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com