samedi 30 mai 2015

JButton - Nur Icon anzeigen / transparenter Hintergrund

Guten Tag,

als Neuling hier, bedanke ich mich erstmal für die Möglichkeit meine Fragen hier loswerden zu können.

Nun aber zu meiner Frage:

Ich habe ein JPanel mit Borderlayout. Im Center sind vier JButtons und in East 1 JButton mit einem Icon, wobei hier jedoch nur das Icon gezeigt werden soll und nicht der JButton.

Als Grundlage für den Versuch habe ich den folgenden Beitrag genommen: http://ift.tt/1KuT8jO

Die Methode zum erstellen des JPanel sieht wie folgt aus:

Code:

public static JPanel panelA(){
    JPanel panelA = new JPanel();
    panelA.setLayout(new BorderLayout());

    panelA.add(auswertung(),BorderLayout.EAST);
    panelAadd(buttonsAuswahlModus(),BorderLayout.CENTER);
    panelA.setOpaque(false);
    return panelA;
}

Das Panel für EAST wird hier erstellt:

Code:

public static JPanel auswertung(){
    JPanel panelAuswertung = new JPanel();
    panelAuswertung.setLayout(new GridBagLayout());
    JButton ausEinblenden = new JButton();
    panelAuswertung.setOpaque(false);
    ausEinblenden.setContentAreaFilled(false);
    ausEinblenden.setBorderPainted(false);
    ausEinblenden.setOpaque(false);
    ImageIcon statistik = null;
    try {
        statistik = new ImageIcon(ImageIO.read(ImageHelper.class.getResourceAsStream("IconStatistikPfeil.png")));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    statistik.setImage(statistik.getImage().getScaledInstance(80,80,Image.SCALE_DEFAULT));
    ausEinblenden.setIcon(statistik);
    panelAuswertung.add(ausEinblenden);
    ausEinblenden.setPreferredSize(new Dimension(80,80));
   
   
    return panelAuswertung;
}

Der JButton wird auch so wie gewollt angezeigt, jedoch benötigt das JPanel mit dem "Icon"-Button einen transparenten Hintergrund, damit ein Hintergrundbild anzeigt wird. Leider wird der JButton nicht mehr angezeigt, wenn der Hintergrund transparent ist.

Hat dazu jemand eine Idee?

Wo ich schon bei dem "JPanelA" bin, habe ich noch ein kleines Problem. Die JButtons im Center werden erst dargestellt, wenn ich mit der Maus über diese gehe, sonst werden diese nicht dargestellt.

Code für Center:

Code:

private static JPanel buttonsAuswahlModus(){
    JPanel panelButtons = new JPanel();
    JPanel panelButtonsZentrieren = new JPanel();
    JButton buttonA = new JButton("A");
    JButton buttonB = new JButton("B");
    JButton buttonC = new JButton("C");
    JButton buttonD = new JButton("D");

   
    panelButtonsZentrieren.setLayout(new GridBagLayout());
    panelButtons.setLayout(new GridLayout(2,2,20,20));

    buttonA.setPreferredSize(new Dimension(300,150));
    buttonB.setPreferredSize(new Dimension(300,150));
    buttonC.setPreferredSize(new Dimension(300,150));
    buttonD.setPreferredSize(new Dimension(300,150));

    panelButtons.add(buttonA);
    panelButtons.add(buttonB);
    panelButtons.add(buttonC);
    panelButtons.add(buttonD);
    panelButtons.setOpaque(false);

    panelButtonsZentrieren.setOpaque(false);
    panelButtonsZentrieren.setPreferredSize(new Dimension(800,700));
 
    panelButtonsZentrieren.add(panelButtons);

    return panelButtonsZentrieren;
}

Ich bedanke mich im voraus für mögliche Unterstützung.


JButton - Nur Icon anzeigen / transparenter Hintergrund

0 commentaires:

Enregistrer un commentaire