gpt4 book ai didi

Java绘图程序

转载 作者:行者123 更新时间:2023-11-29 03:11:34 26 4
gpt4 key购买 nike

我正在尝试创建一个简单的绘图程序,其中包含一个工具栏和一个绘图区域。该程序的主窗口是一个 JFrame。我添加了一个 JToolBar 和一个 JPanel (drawingPanel) 用于绘制。然而,这条线不是画在 drawingPanel 上而是在它后面(当我删除 drawingPanel 时我可以看到这条线 - 只需注释掉 CreateDrawingPanel();)。如何在 drawingPanel 上画线?

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.SwingUtilities;

public class UserInterface extends JPanel
{
static JFrame frame;
static JPanel drawingPanel;

public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
CreateFrame();
}
});
}

private static void CreateFrame()
{
frame = new JFrame("Interface");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
frame.add(new UserInterface());
}

public UserInterface()
{
setLayout(new BorderLayout());
CreateToolBar();
CreateDrawingPanel();
repaint();
}

private void CreateToolBar()
{
JToolBar toolbar = new JToolBar(JToolBar.VERTICAL);
JButton button = new JButton("Some button");
toolbar.add(button);
add(toolbar, BorderLayout.WEST);
toolbar.setBackground(Color.black);
toolbar.setFloatable(false);
}

private void CreateDrawingPanel()
{
drawingPanel = new JPanel();
add(drawingPanel, BorderLayout.CENTER);
drawingPanel.setBackground(Color.white);
}

public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawLine(100, 100, 120, 500);
}

}

最佳答案

您所有的绘图都在 UserInterface 对象上,因为这是您覆盖 paintComponent() 的地方。

移除 paintComponent() 覆盖,并更改 createDrawingPanel():

 private void CreateDrawingPanel()
{
drawingPanel = new JPanel(){

public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawLine(100, 100, 120, 500);
}
};

add(drawingPanel, BorderLayout.CENTER);
drawingPanel.setBackground(Color.white);
}

关于Java绘图程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29060296/

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