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.