2017-03-31 167 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