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

标签 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);
    }
    ....
}

如何在这个白色方 block 上绘制另一条线或其他任何东西,而不用在 Graphs PaintComponent 方法中绘制线?如何在另一个 JPanel 之上添加另一个 JPanel,以便它们都可见? (我正在使用 JPanel 添加一些按钮)

希望你能明白我的问题。

谢谢!

最佳答案

How do I draw another line or anything else on top of this white square whithout drawing the line in the Graphs paintComponent method?

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

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

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

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

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

关于JPanel 之上的 Java JPanel(绘图之上绘图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812272/

相关文章:

java - 尝试用 JPanel 绘制一个简单的矩形,但没有显示任何内容

c++ - 栅格化二维多边形

graphics - 抗锯齿和 Gamma 补偿

java - 如何在 NetBeans GUI Builder 中包含自定义面板?

java - 将数据插入JTable内的JPanel -- JAVA

java - 简单的JFrame程序但看不到JTextfield

java - 使用 Flying Saucer Itext batik 嵌入嵌入 svg 的 Html 转换为 PDF

java - Drools:访问 ArrayList 作为 Map 中的值

java - 将可完成的 future 的异常映射到不同的异常类型?

java - Hangman GUI 小程序 java