【发布时间】:2017-11-03 04:52:45
【问题描述】:
我有jDialog,它在BorderLayout、"south"、"north" 和"center" 我有带有元素的jPanel(在“中心”的jPanel 中没有任何内容。
"center" jPanel 称为 Map。
我是这样的:
主要
Graphics t = Map.getGraphics();
paintComponent(t);
不是主要的。
public void paintComponent(Graphics g){
super.paintComponents(g);
g.drawLine(0, 0, 50, 150);
}
我什么都画不出来。我犯了什么错误?
【问题讨论】:
-
你把你的paintComponent()放在哪里了?
-
首先在newDlg构造函数中放置第一部分代码。然后在它被放置之后paintComponent()。
-
绘画不能这样工作,你不应该直接调用
paintComponent(或任何绘画方法)。您应该更改一些共享状态,调用repaint并等待绘制系统重新绘制您的组件 -
您需要停止猜测这些东西是如何工作的,并开始研究 API 的工作原理并设法使用它。首先查看Performing Custom Painting 和Painting in AWT and Swing,了解有关绘画工作原理的更多详细信息
-
顺便说一句 - 不要添加 IDE 的标签,除非问题是 with IDE。 (99.99% 的情况下不是。问题出在 Java 代码上,并且在任何 IDE 中都会出现问题。)
标签: java swing jpanel paintcomponent