seticonimage seticon icon clase change java swing icons jframe

java - clase - jframe seticonimage



¿Cómo establecer el icono predeterminado en un JFrame? (2)

Así que estaba haciendo Java e hice un buen programa pequeño. Aquí está el código:

import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; public class aa extends JFrame{ private JButton jb; private JTextField jt0; private JTextField jt1; private JTextField jt2; int jti1; int jti2; public aa(){ jb = new JButton(">> FIGHT <<"); jt0 = new JTextField("", 25); jt1 = new JTextField("", 25); jt2 = new JTextField("<< BATTLE VICTOR >>", 35); jt0.setText(""); jt2.setEditable(false); jb.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(jt0.getText().length() > jt1.getText().length()) jt2.setText((jt0.getText() + " << IS VICTORIUS OVER >> " + jt1.getText())); else if(jt1.getText().length() > jt0.getText().length()) jt2.setText((jt1.getText() + " << IS VICTORIUS OVER >> " + jt0.getText())); else if(jt1.getText().length() == jt0.getText().length()) jt2.setText((jt1.getText() + " << TIED >> " + jt0.getText())); }; } ); add(jt0, BorderLayout.NORTH); add(jt1, BorderLayout.NORTH); add(jt2, BorderLayout.NORTH); add(jb, BorderLayout.CENTER); } }

Y aquí está el script en ejecución:

import java.awt.FlowLayout; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JFrame; public class a{ public static void main(String[] args){ aa b = new aa(); b.setLayout(new FlowLayout()); b.setTitle("BattleWords"); b.setSize(420, 150); b.setVisible(true); b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

}

Hasta ahora he probado toda la setIconImage() y no funcionó. Quiero agregar una imagen png o gif o ico. ¿Dónde debería ubicarlo? ¿A dónde va el código y cómo puede verse?


De hecho, usa JFrame.setIconImage() . Aquí hay un ejemplo de código que podría aparecer en el constructor de su JFrame o incluso mejor en un método de initComponents :

try { Image image = ImageIO.read(aa.class.getResource("/TestImage.png")); setIconImage(image); } (IOException e) { // handle exception }

La imagen TestImage.png se ubicará en la carpeta raíz donde se encuentran los archivos de clase. Esta


Intenta hacer una carpeta fuera de tus fuentes y luego coloca la imagen del icono allí. Luego, usa este código para cargar tu ícono.

b.setIconImage(ImageIO.read(new File("res/icon.png")));

Yo uso esto y funciona todo el tiempo.