我正在使用Java JRE 1.6.7並具有JComponent和JScrollPane。我無法得到雙緩衝工作,這總是導致閃爍。如果我使用了Canvas,則需要緩衝處理,但這會在與JScrollPane結合使用時產生問題。自定義繪製組件不在JScrollPane內繪製
所以我下載了JRE 1.6.18,希望能解決其中的一個問題。那麼現在JScrollPane中的JComponent根本就沒有正確繪製。它僅繪製JComponent的外部區域,就像JScrollPane在邊界之外繪製它一樣。
下面是代碼未drawing..this中的區域的1個像素寬的白色輪廓的結果應該在哪裏發生拉絲的例子:
public void paint(Graphics arg0) {
Graphics2D graphics = (Graphics2D) arg0;
graphics.setColor(Color.WHITE);
graphics.fillRect(0, 0, (int) getWidth(), (int) getHeight());
任何幫助是非常感謝! -Craig
嗨 感謝您的回覆。雅,大綱肯定在那裏。我在紅色也嘗試過。我也嘗試把我的paint代碼放在paintComponent中,但是我得到了相同的結果。 我將繪畫JComponent直接添加到一個JDialog的中心,並且它完美地繪畫。但是,只要我將它添加到JScrollPane並將其放入JDialog中,我就開始獲得奇怪的繪圖行爲。 這裏是我添加到對話框/滾動條的代碼: – Craig 2010-02-02 18:48:42
JScrollPane scrollPane = new JScrollPane(); scrollPane.add(containerCanvas); scrollPane.setSize(containerCanvas.getSize()); dialog.add(scrollPane,BorderLayout.CENTER); dialog.setVisible(true); – Craig 2010-02-02 18:49:18