我對如何擴展JPanel以使畫布樣式對象在Swing中工作有點困惑,如果我想要在創建新圖像之後創建新圖像或文本,我該怎麼辦?目的?因爲我認爲這是paintComponent被調用的時候。paintComponent之後的Java Swing繪製圖像調用
0
A
回答
2
除了從ControlAltDel優秀的建議(見step 3 of the tutorial關於如何編程重繪信息)Andrew Thompson和,這可能是一個非常簡單的例子,用於幫助你開始:
public class Main {
public static void main(final String[] args) throws InterruptedException {
final JFrame frame = new JFrame("Swing canvas");
frame.setBounds(100, 100, 640, 480);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
final CanvasPanel canvasPanel = new CanvasPanel();
frame.getContentPane().add(canvasPanel);
frame.setVisible(true);
final List<String> words = Arrays.asList("one", "ein", "une", "uno", "jeden", "een");
for (final String word : words) {
canvasPanel.addWord(word);
// Dirty way to simulate some heavy translation work...
Thread.sleep(246);
}
}
}
class CanvasPanel extends JPanel {
private final List<String> words = new ArrayList<>();
public void addWord(final String word) {
words.add(word);
repaint();
}
@Override
protected void paintComponent(final Graphics graphics) {
super.paintComponent(graphics);
for (int wordIndex = 0; wordIndex < words.size(); wordIndex++)
graphics.drawString(words.get(wordIndex), 42, 64 + 28 * wordIndex);
}
}
在這例如,畫布面板自身調用重繪方法,但也可以從外部調用。祝你的項目好運!
相關問題
- 1. Java重繪()不調用paintComponent()繪製圖像
- 2. Java重繪()不調用paintComponent
- 3. 使用paintComponent()繪製多個圖像
- 4. paintComponent()在重繪後留下先前繪製的圖像()
- 5. Java Swing重繪圖像
- 6. 使用Swing在圖像上繪製
- 7. 使用Java 2D和Swing繪製圖形
- 8. JPanel類之外的Java繪製圖像
- 9. 重繪不調用的paintComponent
- 10. 從paintComponent調用繪製方法
- 11. 用Java Swing繪製多行
- 12. 使用RGBA繪製Java Swing
- 13. Java Swing PaintComponent旋轉jlabels
- 14. java/Swing問題與paintComponent
- 15. Swing,調整大小然後繪製
- 16. 用paintComponent()和繼承繪製「圖層」
- 17. 保存圖像繪製之後
- 18. Java Swing - 在面板中繪製圖形
- 19. 在Swing中的邊框後面繪製圖像JPanel
- 20. Java Swing中的圖形繪製只繪製點
- 21. Swing paintComponent processing
- 22. 在JFrame Swing中繪製像素
- 23. Java,Swing,Awt - 在圖像上繪製矩形並使其可見
- 24. 使用Swing繪圖文本
- 25. 圖形沒有繪製在paintComponent(Graphics)中?
- 26. 的Java AWT/Swing的:問題的paintComponent定製的JPanel(S)
- 27. 重繪()不調用JComponent類中的paintComponent()
- 28. 重寫paintComponent();繪製多個緩衝圖像
- 29. 的paintComponent()我當調用的paintComponent通過重繪由代碼內重繪
- 30. Java - 調用paintComponent方法
http://www.google.com/url?url=http://docs.oracle.com/javase/tutorial/uiswing/painting&rct=j&frm=1&q=&esrc=s&sa=U&ei=gJZvVOPTLLT_sAS3tILADQ&ved=0CBQQFjAA&sig2=kL4owINmtAOLLmtO8tRCFQ&usg = AFQjCNHkv5ISFDgkyC7FVWGorMLf92vUUQ – ControlAltDel 2014-11-21 19:46:29
我已經看過,沒有解釋如何在paintComponent運行後如何做一些事情 – Eykar 2014-11-21 22:08:49
修改後調用repaint().. – 2014-11-21 23:17:06