Voglio cambiare JButton
sfumatura di colore, ho trovato questo, http://java2everyone.blogspot.com/2009/01/set-jbutton-gradient-color.html, ma voglio cambiare pendenza per un solo pulsante, non tutti pulsanteChange JButton sfumatura di colore, ma solo per un pulsante, non tutti
risposta
È può sovrascrivere il metodo dell'istanza JButton
paintComponent e vernice sua Graphics oggetto con una delle seguenti classi che implementano l'interfaccia Paint:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public final class JGradientButtonDemo {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
private static void createAndShowGUI() {
final JFrame frame = new JFrame("Gradient JButton Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new FlowLayout());
frame.add(JGradientButton.newInstance());
frame.setSize(new Dimension(300, 150)); // used for demonstration
//frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static class JGradientButton extends JButton {
private JGradientButton() {
super("Gradient Button");
setContentAreaFilled(false);
setFocusPainted(false); // used for demonstration
}
@Override
protected void paintComponent(Graphics g) {
final Graphics2D g2 = (Graphics2D) g.create();
g2.setPaint(new GradientPaint(
new Point(0, 0),
Color.WHITE,
new Point(0, getHeight()),
Color.PINK.darker()));
g2.fillRect(0, 0, getWidth(), getHeight());
g2.dispose();
super.paintComponent(g);
}
public static JGradientButton newInstance() {
return new JGradientButton();
}
}
}
Un piccolo miglioramento nel corso MRE risposta:
private static final class JGradientButton extends JButton{
private JGradientButton(String text){
super(text);
setContentAreaFilled(false);
}
@Override
protected void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D)g.create();
g2.setPaint(new GradientPaint(
new Point(0, 0),
getBackground(),
new Point(0, getHeight()/3),
Color.WHITE));
g2.fillRect(0, 0, getWidth(), getHeight()/3);
g2.setPaint(new GradientPaint(
new Point(0, getHeight()/3),
Color.WHITE,
new Point(0, getHeight()),
getBackground()));
g2.fillRect(0, getHeight()/3, getWidth(), getHeight());
g2.dispose();
super.paintComponent(g);
}
}
Come sarebbe uno implementare questo a un pulsante che fa già parte di una GUI? Dovrei cambiare gli ascoltatori di azioni se aggiungo questo ai pulsanti? È possibile? O meglio una domanda; è una domanda ragionevole da chiedere in primo luogo? –
Se una GUI ha già un pulsante, ci deve essere del codice che crea quel pulsante (JButton b = new JButton ("qualunque cosa")). Per sostituire il pulsante predefinito, devi invece creare un JGradientButton (JButton b = new JGradientButton ("Whatever")) e impostare il colore di sfondo su ciò che ti piace (b.setBackground (.. somecolor ...)). Il codice rimanente nella GUI che gestisce il pulsante dovrebbe essere lasciato invariato – luca
- 1. Immagine solo Java JButton?
- 2. come impostare il colore di Jbutton
- 3. come calcolare sfumatura di colore per cento
- 4. Change soltanto un colore specifico UITabBarItem tinta
- 5. Uscita colore sfumatura
- 6. Cambia il colore di un JButton in JGoodies WindowsLookAndFeel
- 7. UIBezierPath con sfumatura di colore
- 8. Change md-casella colore
- 9. Change messaggio console.log colore
- 10. Come implementare Cross Browser Opacity Gradient (Non sfumatura di colore)
- 11. Come impostare un colore di sfondo di un JButton in Java?
- 12. ionico: Change ionico Navicon colore
- 13. Rinominare un pulsante dopo aver cliccato - Java JButton
- 14. Come cambiare il colore del testo di un JButton
- 15. Change listpreference colore e dimensione
- 16. Aggiungi il cursore dell'opacità al pannello colorato per un solo colore ma non altri
- 17. Come impostare il colore di sfondo di un JButton su Mac OS
- 18. Change UIPopoverController (e colore tasto back)
- 19. Creazione di un'ombra curva con una sfumatura di colore
- 20. Opacità sfumatura CSS (non sfondo)
- 21. Come posso aggiungere l'effetto sfumatura al colore di sfondo di TextView in un controllo ListView?
- 22. ridimensionamento di ImageIcon in un JButton
- 23. Come ottenere il colore di sfondo predefinito di JButton?
- 24. Grafico R: curve normali con sfumatura di colore
- 25. Come cambiare l'aspetto di un JButton disabilitato in java
- 26. colore di sfondo Change Toolbar di programmazione non cambia Toolbar Titolo sfondo di colore
- 27. Imposta sfumatura di sfondo sul pulsante in Swift
- 28. Come impostare il colore della sfumatura di avanzamento in UIProgressView
- 29. C# Crea immagine sfumatura
- 30. ng-change non funziona su un input di testo
poiché dovrebbe essere L & F sensibile, ma vey piacevole +1 – mKorbel
migliore soluzione che ho trovato su SO –