2017-03-31 107 views
0

亲爱的堆栈溢出器,积极渲染JComponent

我正在Java中部署经典的活动渲染图形应用程序。在此设置中,我得到一个Graphics2D g组件,我可以使用g.draw...操作在其上绘制(例如框,文本,形状)。

现在,我想重新使用一个Swing组件,例如JLabel。所以,我想要做一些像g.draw(new JLabel("Hello World!"));。 但是,该原语不适用于Graphics2D对象。

您知道我可以信赖的解决方法吗?

感谢您的帮助, LOIS

+1

您可以使用[SwingUtilities.paintComponent](http://docs.oracle.com/javase/8/docs/api/javax/swing/SwingUtilities.html#paintComponent-java.awt.Graphics-java.awt。组件的java.awt.Container中-INT-INT-INT-内部 - )。但是,如果您只是想将JLabel的内容放入图形中,最好使用[SwingUtilities.layoutCompoundLabel](http://docs.oracle.com/javase/8/docs/api/javax/swing /SwingUtilities.html#layoutCompoundLabel-javax.swing.JComponent-java.awt.FontMetrics-java.lang.String-javax.swing.Icon-int-int-int-int-java.awt.Rectangle-java.awt.Rectangle -java.awt.Rectangle-内部 - )。 – VGR

+0

太棒了!这工作完美。感谢VGR! – user25005

回答

0

从VGR: 您可以使用SwingUtilities.paintComponent。但是,如果您只想在图形中放入JLabel的内容,则最好使用SwingUtilities.layoutCompoundLabel