He estado intentando por un tiempo hacer que este código funcione, y no sé qué tiene de malo. Todo lo que he mostrado dice que declara JFrame correctamente, pero ya lo hice y no aparece. Aquí está mi código:
import javax.swing.*;
import java.awt.*;
public class test extends JFrame {
private JFrame f;
private JPanel p;
private JButton b1;
private JLabel lab;
public void test() {
gui();
}
public void gui() {
JFrame f = new JFrame("Frame");
f.setBounds(30, 30, 700, 1000);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.setFocusable(true);
p = new JPanel();
p.setBackground(Color.YELLOW);
b1 = new JButton("Button");
lab = new JLabel("Label");
p.add(b1);
p.add(lab);
f.add(p, BorderLayout.SOUTH);
}
public static void main(String[] args) {
new test();
}
}
No entiendo la codificación lo suficiente como para poder diagnosticar el problema, así que he venido para recibir ayuda. ¡Gracias de antemano!
3 respuestas
Esto se debe a que no está llamando al método test()
. Sin embargo, parece que su intención era hacer de este método un constructor:
public void test() {
gui();
}
En cambio, debería ser (los constructores no tienen un tipo de retorno):
public test() {
gui();
}
Hice un objeto de prueba y llamé al método de prueba que estaba llamando gui();
en él.
package vai;
import javax.swing.*;
import java.awt.*;
public class test extends JFrame {
private JFrame f;
private JPanel p;
private JButton b1;
private JLabel lab;
public void test() {
gui();
}
public void gui() {
JFrame f = new JFrame("Frame");
f.setBounds(30, 30, 700, 1000);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.setFocusable(true);
p = new JPanel();
p.setBackground(Color.YELLOW);
b1 = new JButton("Button");
lab = new JLabel("Label");
p.add(b1);
p.add(lab);
f.add(p, BorderLayout.SOUTH);
}
public static void main(String[] args) {
test t1 = new test();
t1.test();
}
}
Fue un simple error. Necesita una instancia de creación de la clase y llame al método gui (). Debe cambiar el nombre de la prueba a Prueba. Es la mejor práctica.
Nuevas preguntas
java
Java es un lenguaje de programación popular de alto nivel. Use esta etiqueta cuando tenga problemas para usar o comprender el lenguaje en sí. Esta etiqueta rara vez se usa sola y se usa con mayor frecuencia junto con [spring], [spring-boot], [jakarta-ee] y [maven].