Form.java extends JFrame
Ich bin ein starter in Java. Ich möchte ein Formular erstellen, die Klasse, die Sie erweitert JFrame zu verwenden. Alles funktioniert ok, es Größen und Zentren sowie auf dem Bildschirm. Ich kann einfach keine Komponenten hinzufügen, um es. Was vermisse ich. Gegoogelt jede Klasse, konnte nichts finden.
Main.java:
package pongLib;
import pongUI.*;
public class Main {
public static void main(String[] args) {
Form frm = new Form(600,500,"Pong");
}
}
Form.java:
package pongUI;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Form extends JFrame {
private int width;
private int height;
private int posx;
private int posy;
private String title;
public Form(int width, int height, String title) {
//call parent constructor
super();
//set size
this.width=width;
this.height=height;
//set title
this.title=title;
//get position(x,y)
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
Double x = (screen.getWidth()-this.width)/2;
Double y = (screen.getHeight()-this.height)/2;
posx = x.intValue();
posy = y.intValue();
//add components
JLabel points1Label = new JLabel("The Rookie (aka You)");
this.addComponent(points1Label, 10, 50);
//set form properties
this.setLayout(null);
this.setSize(width, height);
this.setLocation(posx, posy);
this.setResizable(false);
this.setTitle(title);
this.setVisible(true);
public void addComponent(Component c, int posx, int posy) {
c.setLocation(posx, posy);
this.getContentPane().add(c,BorderLayout.CENTER);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist es:
Sind Sie nicht mit einem LayoutManager:
Sehen dieser Artikel über absolute Positionierung in Schwung, wenn Sie nicht mit einer layout-manager.
Ich denke, Das problem ist Ihr
es ist kein layout-manager zum anordnen der Komponenten.
Müssen Sie ein layout.
diese.setLayout(new BorderLayout());
Sollten Sie die layout
new BorderLayout()
stattnull
. Ansonsten, deine Komponenten werden nicht mit Größe > 0 und gewann daher nicht sichtbar sein.Ihre Komponenten haben keine Größe, um Sie. Geben Sie eine Breite und Höhe ein, oder noch besser, verwenden Sie ein layout-manager, anstatt ein null-layout.