如何向我的 JButtons 添加图像功能
Posted
技术标签:
【中文标题】如何向我的 JButtons 添加图像功能【英文标题】:How to add image-functionality to my JButtons 【发布时间】:2021-03-11 19:57:09 【问题描述】:您好,我正在开发类似收银员的应用程序,我已经创建了菜单和按钮,但是我想为我的 Jbuttons 添加特定功能,我在这里阅读了很多与此相关的问题,但不幸的是我'还没有想出解决方案,我想知道我怎么可能在我的 Jbuttons 中添加一些变量管理或图像更改功能
import javax.swing.*;
import java.awt.*;
import javax.swing.ImageIcon;
import javax.swing.JButton;
class PRINCIPAL extends JFrame
public PRINCIPAL()
setResizable(false); //Hace que la ventana sea no modificable
setTitle("Projecto de Cajero UTC"); //Titulo para la parte de arriba
setSize(1020,760); //Tamaño de la app
JLabel fondo; //Declaramos un label para el fondo
ImageIcon inicio = new ImageIcon("src/main/java/Imagenes/MENU.png");//Añadimos un icono parra el fondo
fondo= new JLabel("",inicio,JLabel.LEFT);//Se añade el Fondo al centro en el centro
fondo.setBounds(50,0,550,0); //Pixeles calculados para la posicion del fondo respecto al frame
add(fondo); //Añadir
setLocationRelativeTo(null); //Ventana al centro
JButton clickINICIO=new JButton("INICIO"); //Declaramos el boton
clickINICIO.setFont(new Font("Work Sans", Font.BOLD,20));//Letras
clickINICIO.setBounds(30,141,192,36); //Tamaño del boton
fondo.add(clickINICIO); //añadir
//clickINICIO.setContentAreaFilled(false);//
//clickINICIO.setBorderPainted(false);// TRANSPARENTE
//clickINICIO.setOpaque(false); ////
//clickINICIO.setFocusable(false);////
//clickINICIO.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//Cambiar mouse al pasar el boton
JButton clickSALDO=new JButton("SALDO"); //Declaramos el boton
clickSALDO.setFont(new Font("Work Sans", Font.BOLD,20));//Letras
clickSALDO.setBounds(30,199,191,37); //Tamaño del boton
fondo.add(clickSALDO); //añadir
//clickSALDO.setContentAreaFilled(false);//
//clickSALDO.setBorderPainted(false);// TRANSPARENTE
//clickSALDO.setOpaque(false); ////
clickSALDO.setFocusable(false);////
clickSALDO.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//Cambiar mouse al pasar el boton
JButton clickDEPOSITOS=new JButton("DEPOSITOS"); //Declaramos el boton
clickDEPOSITOS.setFont(new Font("Work Sans", Font.BOLD,20));//Letras
clickDEPOSITOS.setBounds(30,258,191,37); //Tamaño del boton
fondo.add(clickDEPOSITOS); //añadir
//clickDEPOSITOS.setContentAreaFilled(false);//
//clickDEPOSITOS.setBorderPainted(false);// TRANSPARENTE
//clickDEPOSITOS.setOpaque(false); ////
clickDEPOSITOS.setFocusable(false);////
clickDEPOSITOS.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//Cambiar mouse al pasar el boton
JButton clickRETIROS=new JButton("RETIROS"); //Declaramos el boton
clickRETIROS.setFont(new Font("Work Sans", Font.BOLD,20));//Letras
clickRETIROS.setBounds(30,316,191,37); //Tamaño del boton
fondo.add(clickRETIROS); //añadir
//clickRETIROS.setContentAreaFilled(false);//
//clickRETIROS.setBorderPainted(false);// TRANSPARENTE
//clickRETIROS.setOpaque(false); ////
clickRETIROS.setFocusable(false);////
clickRETIROS.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//Cambiar mouse al pasar el boton
JButton clickMOVIMIENTOS=new JButton("MOVIMIENTOS"); //Declaramos el boton
clickMOVIMIENTOS.setFont(new Font("Work Sans", Font.BOLD,20));//Letras
clickMOVIMIENTOS.setBounds(30,374,191,39); //Tamaño del boton
fondo.add(clickMOVIMIENTOS); //añadir
//clickMOVIMIENTOS.setContentAreaFilled(false);//
//clickMOVIMIENTOS.setBorderPainted(false);// TRANSPARENTE
//clickMOVIMIENTOS.setOpaque(false); ////
clickMOVIMIENTOS.setFocusable(false);////
clickMOVIMIENTOS.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//Cambiar mouse al pasar el boton
JButton clickSERVICios=new JButton("SERVICIOS"); //Declaramos el boton
clickSERVICIOS.setFont(new Font("Work Sans", Font.BOLD,20));//Letras
clickSERVICIOS.setBounds(30,432,191,77);//Tamaño del boton
fondo.add(clickSERVICIOS); //añadir
//clickSERVICIOS.setContentAreaFilled(false);//
//clickSERVICIOS.setBorderPainted(false);// TRANSPARENTE
//clickSERVICIOS.setOpaque(false); ////
clickSERVICIOS.setFocusable(false);////
clickSERVICIOS.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//Cambiar mouse al pasar el boton
JButton clickAJUSTES=new JButton("AJUSTES"); //Declaramos el boton
clickAJUSTES.setFont(new Font("Work Sans", Font.BOLD,20));//Letras
clickAJUSTES.setBounds(30,528,191,39);//Tamaño del boton
fondo.add(clickAJUSTES); //añadir
//clickAJUSTES.setContentAreaFilled(false);//
//clickAJUSTES.setBorderPainted(false);// TRANSPARENTE
//clickAJUSTES.setOpaque(false); ////
clickAJUSTES.setFocusable(false);////
clickAJUSTES.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//Cambiar mouse al pasar el boton
JButton clickSALIR=new JButton("SALIR"); //Declaramos el boton
clickSALIR.setFont(new Font("Work Sans", Font.BOLD,20));//Letras
clickSALIR.setBounds(30,586,191,39);//Tamaño del boton.
fondo.add(clickSALIR); //añadir
//clickSALIR.setContentAreaFilled(false);//
//clickSALIR.setBorderPainted(false);// TRANSPARENTE
//clickSALIR.setOpaque(false); ////
clickSALIR.setFocusable(false);////
clickSALIR.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//Cambiar mouse al pasar el boton
【问题讨论】:
【参考方案1】:来自Java documentation:
public JButton(String text,
Icon icon)
Creates a button with initial text and an icon.
Parameters:
text - the text of the button
icon - the Icon image to display on the button
基本上,您必须在按钮实例化期间使用该构造函数。或者,您可以通过调用 setIcon
method 来扩展每个按钮的构造。
示例用法:
//first approach
ImageIcon imageIcon = new ImageIcon("helloWorld.png");
JButton button = new JButton("HELLO WORLD", imageIcon);
//second approach
JButton button = new JButton("HELLO WORLD");
ImageIcon imageIcon = new ImageIcon("helloWorld.png");
button.setIcon(imageIcon);
【讨论】:
以上是关于如何向我的 JButtons 添加图像功能的主要内容,如果未能解决你的问题,请参考以下文章
如何教 SpecFlow 向我的测试类添加额外的 NUnit 属性
ActionListener - 将动作添加到 JButtons 的 ArrayList
如何在不干扰本机控件的情况下向我的 HTML5 视频添加点击播放?