私の問題では、不透明な JPanel と、最初の JPanel の上にある半透明 (半透明) の別の JPanel があります。上部の JPanel にラジオ ボタンを追加したとき。問題は、各ラジオ ボタンのラベルの領域にマウスを入力するたびに (およびマウスをラベルから離すたびに)、どんどん暗くなっていくということです。
package trial;
import java.awt.Color;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class Test {
public static void main(String arg[]){
JFrame rootframe = new JFrame("Test panel");
rootframe.setSize(800, 550);
rootframe.setExtendedState(JFrame.MAXIMIZED_BOTH);
JPanel basePanel = new JPanel(); //fills rootFrame
basePanel.setOpaque(true);
basePanel.setBackground(Color.yellow );
JPanel panelContainingRadioButtons = new JPanel();//wraps radio buttons
panelContainingRadioButtons.setOpaque(true);
panelContainingRadioButtons.setBackground(new Color(0,0,0,100) );
ButtonGroup buttonGroup1 = new ButtonGroup();
JRadioButton jRadioButton1 = new JRadioButton();
jRadioButton1.setText("Text A...............................");
jRadioButton1.setOpaque(false);
jRadioButton1.setForeground( Color.white);
buttonGroup1.add(jRadioButton1);
JRadioButton jRadioButton2 = new JRadioButton();
jRadioButton2.setOpaque(false);
jRadioButton2.setForeground( Color.white);
buttonGroup1.add(jRadioButton2);
jRadioButton2.setText("Text B.......................");
JRadioButton jRadioButton3 = new JRadioButton();
jRadioButton3.setOpaque(false);
jRadioButton3.setForeground( Color.white);
buttonGroup1.add(jRadioButton3);
jRadioButton3.setText("Text C................................");
panelContainingRadioButtons.add(jRadioButton1);
panelContainingRadioButtons.add(jRadioButton2);
panelContainingRadioButtons.add(jRadioButton3);
basePanel.add(panelContainingRadioButtons);
rootframe.add(basePanel);
rootframe.setVisible(true);
}
}
これはラジオ ボタンの問題ではないと思います。別の機会に、同じ条件下で、JLabel をトップ JPanel に追加し、リスナーをトップ パネルに追加して、jLabel のテキストの色がマウスがホバーされると変更され、マウスが終了すると元の色にリセットされ、テキストは下の画像のように別の場所に再描画されます:-
必要に応じて、そのコードも投稿します。どちらの場合にも同じ問題があると思います。