Hallo,
ich habe ein JPanel, welches teiltransparent ist. Dazu benutze ich eine Farbe mit einem Alpha-Wert von 150.
Wenn ich nun über einen Button gehe, entstehen hässliche Fehler. Woran kann das liegen?
Die Buttons sind bei mir JLabels, welche ein Bild enthalten um mouseOver-Effekte zu simulieren. Ich hoffe ihr könnt mir helfen. Mir fällt nichts mehr ein
Hier der Code:
ich habe ein JPanel, welches teiltransparent ist. Dazu benutze ich eine Farbe mit einem Alpha-Wert von 150.
Wenn ich nun über einen Button gehe, entstehen hässliche Fehler. Woran kann das liegen?
Die Buttons sind bei mir JLabels, welche ein Bild enthalten um mouseOver-Effekte zu simulieren. Ich hoffe ihr könnt mir helfen. Mir fällt nichts mehr ein
Hier der Code:
Code:
package Components;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;
import Data.Colors;
import Data.GameViewData;
public class GameMenu extends JPanel {
private JLabel menuTop;
private JPanel menuCenter;
private GameViewData data;
private Colors colors = new Colors();
private JLabel save_button;
private JLabel properties_button;
private JLabel lobby_button;
private JLabel quit_button;
private JLabel back_button;
public GameMenu(GameViewData data) {
this.data = data;
this.setLayout(new BorderLayout());
this.setOpaque(false);
this.setBounds(400, 200, (int) data.getPercentToPix(25), 300);
this.setBorder(BorderFactory.createBevelBorder(0, Color.GRAY,
Color.DARK_GRAY));
this.setMenuTop(new JLabel());
this.getMenuTop()
.setIcon(new ImageIcon("images/gameMenu/menuHead.png"));
// die Buttons erzeugen
this.setSave_button(new JLabel(
new ImageIcon("images/gameMenu/save.png")));
this.setProperties_button(new JLabel(new ImageIcon(
"images/gameMenu/einstellungen.png")));
this.setLobby_button(new JLabel(new ImageIcon(
"images/gameMenu/lobby.png")));
this.setQuit_button(new JLabel(
new ImageIcon("images/gameMenu/quit.png")));
this.setBack_button(new JLabel(new ImageIcon(
"images/gameMenu/backToGame.png")));
// Ende Buttons erzeugen
this.setMenuCenter(new JPanel());
this.getMenuCenter().setLayout(new GridLayout(5, 1));
// Buttons auf das GameMenu adden
this.getMenuCenter().add(getBack_button());
this.getMenuCenter().add(getSave_button());
this.getMenuCenter().add(getProperties_button());
this.getMenuCenter().add(getLobby_button());
this.getMenuCenter().add(getQuit_button());
// Ende Buttons adden
this.getMenuCenter().setBackground(colors.getTransparentMainColor(150));
this.add(getMenuTop(), BorderLayout.NORTH);
this.add(getMenuCenter(), BorderLayout.CENTER);
}
public JLabel getProperties_button() {
return properties_button;
}
public void setProperties_button(JLabel properties_button) {
this.properties_button = properties_button;
}
public JPanel getMenuCenter() {
return menuCenter;
}
public void setMenuCenter(JPanel menuCenter) {
this.menuCenter = menuCenter;
}
public JLabel getMenuTop() {
return menuTop;
}
public void setMenuTop(JLabel menuTop) {
this.menuTop = menuTop;
}
public JLabel getSave_button() {
return save_button;
}
public void setSave_button(JLabel save_button) {
this.save_button = save_button;
}
public JLabel getLobby_button() {
return lobby_button;
}
public void setLobby_button(JLabel lobby_button) {
this.lobby_button = lobby_button;
}
public JLabel getQuit_button() {
return quit_button;
}
public void setQuit_button(JLabel quit_button) {
this.quit_button = quit_button;
setQuitListener();
}
public void setQuitListener() {
getQuit_button().addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
getQuit_button().setIcon(
new ImageIcon("images/gameMenu/quit2.png"));
System.exit(0);
}
public void mouseEntered(MouseEvent e) {
setCursor(new Cursor(Cursor.HAND_CURSOR));
getQuit_button().setIcon(
new ImageIcon("images/gameMenu/quit2.png"));
}
public void mouseExited(MouseEvent e) {
getQuit_button().setIcon(
new ImageIcon("images/gameMenu/quit.png"));
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
public void mousePressed(MouseEvent e) {
getQuit_button().setIcon(
new ImageIcon("images/gameMenu/quit2.png"));
}
public void mouseReleased(MouseEvent e) {
getQuit_button().setIcon(
new ImageIcon("images/gameMenu/quit2.png"));
}
});
}
public JLabel getBack_button() {
return back_button;
}
public void setBack_button(JLabel back_button) {
this.back_button = back_button;
setBackToGameListeners();
}
public void setBackToGameListeners() {
this.getBack_button().addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
getBack_button().setIcon(
new ImageIcon("images/gameMenu/backToGame2.png"));
setVisible(false);
}
public void mouseEntered(MouseEvent e) {
getBack_button().setIcon(
new ImageIcon("images/gameMenu/backToGame2.png"));
setCursor(new Cursor(Cursor.HAND_CURSOR));
}
public void mouseExited(MouseEvent e) {
getBack_button().setIcon(
new ImageIcon("images/gameMenu/backToGame.png"));
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
public void mousePressed(MouseEvent e) {
getBack_button().setIcon(
new ImageIcon("images/gameMenu/backToGame2.png"));
}
public void mouseReleased(MouseEvent e) {
getBack_button().setIcon(
new ImageIcon("images/gameMenu/backToGame2.png"));
}
});
}
}