mouseover verändert ungewollt die farbe

XIIZQ

Mitglied
Moinsen,

ich habe ein problem und zwar wenn ich buttons erstelle mit einer neuen hintergrundfarbe die den alpha channel beinhaltet, wird die farbe jedes mal hinzugerechnet oder so..

Java:
        JButton button = new JButton("");
        Color color = new Color(255, 255, 0, 50);
        button.setBackground(color);

kann mir wer sagen warum er das macht und wie man es abschaltet?

MfG
XIIZQ
 
Ich habe mal die Tarot-Karten befragt, der Narr verrät mir, das es mit der Stellung des Mondes zu tun hat

aber villeicht kann ich mehr sagen, wenn du mir vollständigen Beispiel-code gibst in dem das Problem auftritt.
 
Ich habe mal die Tarot-Karten befragt, der Narr verrät mir, das es mit der Stellung des Mondes zu tun hat

aber villeicht kann ich mehr sagen, wenn du mir vollständigen Beispiel-code gibst in dem das Problem auftritt.

was eine antwort xD

Java:
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;

public class NewMain extends JFrame {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(new Dimension(200, 200));
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);

        JButton button = new JButton("");
        Color color = new Color(255, 255, 0, 50);
        button.setBackground(color);

        frame.add(button);
    }
}
 
irgendwo habe ichd avon mal gehört/gelesen *kopfkratz* hat irgendwas damit zu tun das der hintergrund nicht sauber repainted wird. in diesem Beispiel gehts einwandfrei...

PS: meine Karten täuschen sich nie 😉

Java:
package buttonBug;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.JButton;
import javax.swing.JFrame;

public class ButtonBug extends JFrame
{
	public ButtonBug() {
		this.setSize(500,500);
		
		JButton button = new JButton("testing")
		{
			public void paint(Graphics g)
			{
				getParent().repaint();
				super.paint(g);
			}
		};

        button.setOpaque(true);
        Color color = new Color(255, 255, 0,50);
        button.setBackground(color);
        this.getContentPane().setLayout(new FlowLayout());
        this.getContentPane().add(button);
        this.setVisible(true);
	}
	
	public static void main(String[] args)
	{
		new ButtonBug();
	}
}

[edit] habe da grade mal genauer in die API geschaut, es scheint ein problem im zusammenspiel von JButton, dem UIManager und dem LayoutManager zu sein, mit flowLayout klappt das ganze einwandfrei
 
Zuletzt bearbeitet:
xD

WTF ey..

hab recht herzlichen dank dafür, es funzt jetzt so wie ich es wollte.
diese funktion sollte ich mal gründlich ausreizen. ich habe es gerade
mit dem layout null probiert und es funktioniert genauso gut ^^

nochmals vielen dank für die schnelle hilfe. :toll:

MfG
XIIZQ
 

Neue Themen


Zurück
Oben