1

私はJavaを初めて使用しますが、半透明の背景でこのバグを修正できないようです。

パネルの一部を変更すると、変更内容とウィンドウのランダムな画像が描画されます。

バグのより鮮明な写真

バグをはっきりと確認できるように、完全に機能するプロジェクトへのリンクを次に示します。サーバーの読み込みが遅いので少し待ってくださいhttp://fong.shujindesigns.net

テストできるように、この小さなバージョンのバグを作成しました。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.MouseEvent;

public class Example1 extends JApplet implements MouseListener {


    Container Con = getContentPane();
    JPanel panel1 = new JPanel(new GridLayout(5, 5, 0, 0));
    JPanel[][] panel2 = new JPanel[5][5];
    JLabel[] label = new JLabel[25];
    Color color;
    int count = 0;

    public void init() {

        int col = 0;
        int row = 0;
        color = new Color(0.00f, 0.24f, 0.70f, 0.50f);

        for (int i = 0; i < 25; i++) {
            if (col > 4) {
                col = 0;
                row++;
            }
        label[i] = new JLabel("test");
        label[i].addMouseListener(this);
        panel2[col][row] = new JPanel();
        panel2[col][row].add(label[i]);
        color = new Color(0.00f, 0.24f, 0.70f, 0.20f);
        panel2[col][row].setBackground(color);
        label[i].setBorder(BorderFactory.createLineBorder(Color.red));
        panel1.add(panel2[col][row]);
        color = new Color(0.50f, 0.24f, 0.10f, 0.20f);
        panel1.setBackground(color);
        col++;
        }



        Con.add(panel1);
        panel1.setOpaque(false);
        label[5].setText("test2");
    }


    public void mouseEntered(MouseEvent e) {
    }

    public void mouseExited(MouseEvent e) {
    }

    public void mouseClicked(MouseEvent e) {
        label[5].setText("Test 3" + count);
        count++;
    }

    public void mousePressed(MouseEvent e) {  
    }

    public void mouseReleased(MouseEvent e) { 
    }

    public void mouseMoved(MouseEvent e) {
    }

    public void mouseDragged(MouseEvent e) {  
    }
}
4

1 に答える 1

0

mouseClickedイベントで、「repaint()」を追加します

それでもうまくいかない場合は、invalidate()、repaint()を試してください

public void mouseClicked(MouseEvent e) {
    label[5].setText("Test 3" + count);
    count++;

    //revalidate();
    repaint();

}
于 2012-07-11T02:06:46.037 に答える