Hallo Experten,
Ich habe Folgendes vor : Der JFrame einer Applikation soll den gesamten Bildschirm einnehmen, und die eigentliche Graphik bzw. Animation soll, unabhängig von der Bildschirmgröße, zentral vor einem neutralen Hintergrund (hier : gelb) darin erscheinen.
Diese "eigentliche Graphik" habe ich nun im u. a. Beispiel durch ein Panel (JPanel1) der Größe 200*200, mit Rand und rosa Hintergrund, dargestellt. Dann habe ich es per Borderlayout ins Zentrum eingebunden.
Das geht aber so nicht ! Mein Panel füllt nun den gesamten Bildschirm aus, die "setSize()"-Angabe wird ignoriert.
Kann mir jemand sagen, wie man so etwas realisieren kann ?
(N.B.: Eigentlich habe ich ja schon eine Lösung gehabt, nämlich ein Applet zu schreiben und es zentral in einen html-Rahmen einzubinden. Allerdings meckern die Leute hier im Forum immer über Applets, deshalb wollte ich es mal mit einer Applikation versuchen)
Ich habe Folgendes vor : Der JFrame einer Applikation soll den gesamten Bildschirm einnehmen, und die eigentliche Graphik bzw. Animation soll, unabhängig von der Bildschirmgröße, zentral vor einem neutralen Hintergrund (hier : gelb) darin erscheinen.
Diese "eigentliche Graphik" habe ich nun im u. a. Beispiel durch ein Panel (JPanel1) der Größe 200*200, mit Rand und rosa Hintergrund, dargestellt. Dann habe ich es per Borderlayout ins Zentrum eingebunden.
Das geht aber so nicht ! Mein Panel füllt nun den gesamten Bildschirm aus, die "setSize()"-Angabe wird ignoriert.
Kann mir jemand sagen, wie man so etwas realisieren kann ?
Java:
import java.awt.*;
import javax.swing.*;
public class PanelTest extends JPanel
{
Toolkit tool;
Dimension size;
Panel1 panel1;
public PanelTest()
{
size = tool.getDefaultToolkit().getScreenSize();
setPreferredSize(size);
setBackground(Color.yellow);
JFrame frame = new JFrame("Test");
frame.setLocation(0, 0);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(this);
frame.pack();
setPanels();
frame.setVisible(true);
}
public static void main(String arguments[])
{
new PanelTest();
}
public void setPanels()
{
setLayout(new BorderLayout());
panel1 = new Panel1();
add("Center", panel1);
}
}
class Panel1 extends JPanel
{
public Panel1()
{
this.setSize(200, 200);
this.setBorder(BorderFactory.createEtchedBorder());
setBackground(Color. pink);
}
}