JPanel上的Java JPanel(绘图在绘图之上)

时间:2011-10-18 19:01:36

标签: java graphics jpanel

我正在尝试编写代码来生成如下图:http://www.mathgoodies.com/lessons/graphs/images/line_example1.jpg

我需要不止一行(我希望这就是所谓的)。

我刚刚开始学习awt和swing。经过三个小时的工作后,我无法在任何其他绘图上画一条线。

我会尝试用一个例子来解释我的问题。

让我说我画一个像这样的方格:

JFrame window = new JFrame();
window.setLayout(null);
window.setVisible(true);

Graph graph = new Graph();
window.add(graph);
//-------------------
public class Graph extends JPanel {
    ....
    public void paintComponent (Graphics g) {
         super.paintComponent(g);
         g.setColor(Color.white);
         g.fillRect(150, 20, x, y);
    }
    ....
}

如何在Graphs paintComponent方法中绘制线条时,如何在此白色方块上绘制另一条线或其他任何内容?如何在另一个JPanel之上添加另一个JPanel,以便它们都可见? (我正在使用JPanel添加一些按钮)

希望你能理解我在问什么。

谢谢!

1 个答案:

答案 0 :(得分:2)

  

如何在Graphs paintComponent方法中绘制线条时,如何在此白色方块上绘制另一条线或其他任何内容?

所有自定义绘画都应该在paintComponent()方法中完成。我不确定你为什么要添加另一个在线绘制的面板。保持简单,并将所有绘画代码保存在一个地方。

如果要将其他组件(如JPanel)添加到面板,则可以使用布局管理器正确布置组件。您还需要使用setOpaque(...)方法使组件不透明。

分层组件的另一种方法是使用JLayeredPane。

首先阅读Swing tutorial。有以下部分:

  1. 使用布局管理器
  2. 使用分层窗格。