8 respuestas
buenas noches,
para darle un aire más vivo a sus interfaces (estilo XP u otro) existe una API Look&fill, para más información www.developpez.com (API Java)
para darle un aire más vivo a sus interfaces (estilo XP u otro) existe una API Look&fill, para más información www.developpez.com (API Java)
Se puede efectivamente utilizar look & feel existentes, de lo contrario, ¿ha intentado hacer su propio botón?
Algo así
No lo he probado, pero creo que habría hecho algo de este estilo.
Algo así
public JMyButton() extends JButton { super(); this.setBorder( BorderFactory.createEmptyBorder() ); } public paint( Graphics g ) { super(g); Graphics2D g2d = (Graphics2D) g; g2d.drawEllipse( this.getX(), this.getY().... ) ..... } No lo he probado, pero creo que habría hecho algo de este estilo.
El problema es que si te escribo el código, es posible que no aprendas mucho, lo que te propongo es que intentes escribirlo tú mismo (con los elementos que te he dado) y publiques tu código y te lo corregiremos ;-)
public class hy
{public static void main(String[] args)
{
JFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class ButtonFrame extends JFrame
{ public ButtonFrame()
{ setTitle("ButtonTest");
setSize(300, 200);
JFrame frame = new JFrame("exemple");
JButton button = new JButton("clic1 ");
JButton button1 = new JButton("clic2 ");
button1.setBorder(cercle);
JPanel p = new JPanel();
p.add(button);
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
Ellipse2D cercle = new Ellipse2D.Double(50,50,50,50);
}
Container contentPane = getContentPane();
contentPane.add(p);
}
}
{public static void main(String[] args)
{
JFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class ButtonFrame extends JFrame
{ public ButtonFrame()
{ setTitle("ButtonTest");
setSize(300, 200);
JFrame frame = new JFrame("exemple");
JButton button = new JButton("clic1 ");
JButton button1 = new JButton("clic2 ");
button1.setBorder(cercle);
JPanel p = new JPanel();
p.add(button);
public void paint(Graphics g){
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
Ellipse2D cercle = new Ellipse2D.Double(50,50,50,50);
}
Container contentPane = getContentPane();
contentPane.add(p);
}
}
Tiens un petit code qui te permet d'avoir un bouton rond, par contre il te reste à compléter quelques trucs (paintBorder etc) mais de manière générale ça se fait comme ça
import java.awt.*; import javax.swing.*; public class BoutonRond extends JButton { public BoutonRond (String label) { super(label); this.setContentAreaFilled(false); } protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillOval(0, 0, this.getSize().width-1, this.getSize().height-1); super.paintComponent(g); } public static void main(String[] args) { JFrame frame = new JFrame(); JButton button = new BoutonRond ("Boutton"); button.setBackground(Color.BLUE); frame.getContentPane().add(button); frame.setSize(200, 200); frame.setVisible(true); } }