学习在java中使用图形,目前我正在尝试向屏幕添加一些图形,但失败了。我尝试过不同的方法,但没有成功。在显示的代码中,结构不能改变,例如在单独的类中具有paint方法。这是我正在进行的一个项目的简化版本
stackoverflow上的其他问题有助于扩展和类似于oracle网站,但我仍然面临问题,因此我在这里提问。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class test
{
public static void main(String Args[])
{
panelme p1 = new panelme();
}
}
class panelme
{
JFrame mainPanel;
panelme ()
{
mainPanel = new JFrame();
mainPanel.setSize(1000,1000);
mainPanel.setDefaultCloseOperation(mainPanel.EXIT_ON_CLOSE);
//paintFrame();
//paintFrame(g);
//paintFrame(null);
mainPanel.setVisible(true);
}
public void paintFrame(Graphics g)
{
g.drawString("This is a string!", 30, 40);
//repaint();
}
}
首先了解AWT和Swing中的绘画以及执行自定义绘画,了解有关绘画如何在Swing 中工作的更多详细信息
接下来,看看2D图形跟踪
接下来,为自己创建一个从JPanel
扩展的自定义类,然后覆盖它的paintComponent
方法,并将您的自定义绘画放置在其中…
public class PaintPane extends JPanel {
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("This is a string!", 30, 40);
}
}
接下来,将自定义面板添加到窗口中。。。
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new PaintPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});