我正在尝试编写代码来生成如下图: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添加一些按钮)
希望你能理解我在问什么。
谢谢!
答案 0 :(得分:2)
如何在Graphs paintComponent方法中绘制线条时,如何在此白色方块上绘制另一条线或其他任何内容?
所有自定义绘画都应该在paintComponent()方法中完成。我不确定你为什么要添加另一个在线绘制的面板。保持简单,并将所有绘画代码保存在一个地方。
如果要将其他组件(如JPanel)添加到面板,则可以使用布局管理器正确布置组件。您还需要使用setOpaque(...)方法使组件不透明。
分层组件的另一种方法是使用JLayeredPane。
首先阅读Swing tutorial。有以下部分: