Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #3588 > unrolled thread

flat JButtons

Started by"RVince" <rvince@THRWHITE.remove-dii-this>
First post2011-04-27 15:45 +0000
Last post2011-04-27 15:45 +0000
Articles 3 — 3 participants

Back to article view | Back to comp.lang.java.gui


Contents

  flat JButtons "RVince" <rvince@THRWHITE.remove-dii-this> - 2011-04-27 15:45 +0000
    Re: flat JButtons "Evans" <evans@THRWHITE.remove-dii-this> - 2011-04-27 15:45 +0000
    Re: flat JButtons "Roland de Ruiter" <roland.de.ruiter@THRWHITE.remove-dii-this> - 2011-04-27 15:45 +0000

#3588 — flat JButtons

From"RVince" <rvince@THRWHITE.remove-dii-this>
Date2011-04-27 15:45 +0000
Subjectflat JButtons
Message-ID<4841624f$0$30516$4c368faf@roadrunner.com>
  To: comp.lang.java.gui
Does anyone know how to make a flat JButton, or a JButton whose perimiter 
only shows when rolled over? Thanks.

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

[toc] | [next] | [standalone]


#3589

From"Evans" <evans@THRWHITE.remove-dii-this>
Date2011-04-27 15:45 +0000
Message-ID<e368f2f3-a55d-49d6-b3e3-3f4cc5e9e322@w7g2000hsa.googlegroups.com>
In reply to#3588
  To: comp.lang.java.gui
On May 31, 3:36 pm, "RVince" <rvince99  at hotmail dot com> wrote:
> Does anyone know how to make a flat JButton, or a JButton whose perimiter
> only shows when rolled over? Thanks.

The button class has setBorder() method that is inherited from
JComponent. It should help remove the borders and set it flat.

JButton button = new JButton("Click me");
button.setBorder(null);

Evans
http://jroller.com/evans

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

[toc] | [prev] | [next] | [standalone]


#3590

From"Roland de Ruiter" <roland.de.ruiter@THRWHITE.remove-dii-this>
Date2011-04-27 15:45 +0000
Message-ID<48429472$0$14344$e4fe514c@news.xs4all.nl>
In reply to#3588
  To: comp.lang.java.gui
On 31-5-2008 16:36, RVince wrote:
> Does anyone know how to make a flat JButton, or a JButton whose perimiter 
> only shows when rolled over? Thanks. 
> 
> 
You mean like buttons on a JToolBar?

You could use setContentAreaFilled(true) when the mouse is over the 
button and setContentAreaFilled(false) when not. A MouseListener can be 
used to detect when the mouse is over the button or not.

This is demonstrated in the following SCCCE:




package test;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class FlatRolloverButtons extends JFrame {

    private static final long serialVersionUID = 1L;

    public static void main(String[] args) {
       SwingUtilities.invokeLater(new Runnable() {
          public void run() {
             FlatRolloverButtons thisClass = new FlatRolloverButtons();
             thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             thisClass.setVisible(true);
          }
       });
    }

    private JButton jButton1 = null;

    private JButton jButton2 = null;

    private JButton jButton3 = null;

    private JButton jButtonExit = null;

    private JPanel jContentPane = null;

    private JPanel jPanelMain = null;

    private MouseListener rolloverButtonListener;

    public FlatRolloverButtons() {
       super();
       initialize();
    }

    private JButton getJButton1() {
       if (jButton1 == null) {
          jButton1 = new JButton();
          jButton1.setText("Button 1");
          initializeAsFlatRolloverButton(jButton1);
       }
       return jButton1;
    }

    private JButton getJButton2() {
       if (jButton2 == null) {
          jButton2 = new JButton();
          jButton2.setText("Button 2");
          initializeAsFlatRolloverButton(jButton2);
       }
       return jButton2;
    }

    private JButton getJButton3() {
       if (jButton3 == null) {
          jButton3 = new JButton();
          jButton3.setText("Button 3");
          initializeAsFlatRolloverButton(jButton3);
       }
       return jButton3;
    }

    private JButton getJButtonExit() {
       if (jButtonExit == null) {
          jButtonExit = new JButton();
          jButtonExit.setText("Exit");
          jButtonExit.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                System.exit(0);
             }
          });
       }
       return jButtonExit;
    }

    private JPanel getJContentPane() {
       if (jContentPane == null) {
          jContentPane = new JPanel();
          jContentPane.setLayout(new BorderLayout());
          jContentPane.add(getJButtonExit(), BorderLayout.SOUTH);
          jContentPane.add(getJPanelMain(), BorderLayout.CENTER);
       }
       return jContentPane;
    }

    private JPanel getJPanelMain() {
       if (jPanelMain == null) {
          jPanelMain = new JPanel();
          jPanelMain.setLayout(new FlowLayout());
          jPanelMain.add(getJButton1(), null);
          jPanelMain.add(getJButton2(), null);
          jPanelMain.add(getJButton3(), null);
       }
       return jPanelMain;
    }

    private MouseListener getRolloverButtonListener() {
       if (rolloverButtonListener == null) {
          rolloverButtonListener = new MouseAdapter() {
             public void mouseEntered(MouseEvent e) {
                Object source = e.getSource();
                if (source instanceof AbstractButton) {
                   AbstractButton button = (AbstractButton) source;
                   button.setContentAreaFilled(true);
                }
             }

             public void mouseExited(MouseEvent e) {
                Object source = e.getSource();
                if (source instanceof AbstractButton) {
                   AbstractButton button = (AbstractButton) source;
                   button.setContentAreaFilled(false);
                }
             }
          };
       }
       return rolloverButtonListener;
    }

    private void initialize() {
       this.setSize(300, 200);
       this.setContentPane(getJContentPane());
       this.setTitle("JFrame");
    }

    private void initializeAsFlatRolloverButton(AbstractButton b) {
       b.addMouseListener(getRolloverButtonListener());
       b.setContentAreaFilled(false);
    }

}
// END OF FlatRolloverButtons



-- 
Regards,

Roland

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.java.gui


csiph-web