Hallo Java-Freunde!
Ich verzweifle langsam, denn ich hab schon alles, was ich gefunden habe probiert, aber es klappt einfach nicht und ich sehe meinen Fehler nicht.
Ich möchte ein einfaches JFrame erstellen mit einem Hintergrund, einem "Header" (ich meine damit ein Bild, das den Titel anzeigt) und vier Buttons. Dazu habe ich den GridBagLayout-Manager verwendet.
Das Fenster wird erzeugt und die Buttons stehen auch, aber egal was ich versuche, ich kriege weder Header noch Background geladen
So sieht mein Code bisher aus:
package game;
public class Main {
public static void main(String[] args) {
new GUI();
}
}
package game;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
public class GUI extends JFrame{
static String gamename = "Your Way, Your Life";
String bgfile ="../pics/header.png";
String startgame = "Spiel starten", loadgame = "Spiel laden",
settings = "Einstellungen", endgame = "Spiel beenden";
static int screenwidth = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
static int screenheight = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
static int screenw = screenwidth / 2, screenh = (int) (screenheight / 1.5);
int btnwidth, btnheight;
public GUI() {
super (gamename);
setSize(screenw, screenh);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
GridBagLayout gbl = new GridBagLayout();
setLayout(gbl);
GridBagConstraints gbc = new GridBagConstraints();
Icon btn = new ImageIcon(getClass().getResource("../pics/btn.png"));
btnwidth = btn.getIconWidth();
btnheight = btn.getIconHeight();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets (10,3,50,50);
gbc.gridx = 2;
gbc.gridy = 3;
gbc.gridheight = 1;
gbc.gridwidth = 1;
JButton start = new JButton(startgame, btn);
start.setSize(btnwidth, btnheight);
start.setBackground(null);
start.setBorder(null);
start.setBorderPainted(true);
start.setHorizontalTextPosition(JButton.CENTER);
start.setVerticalTextPosition(JButton.CENTER);
gbl.setConstraints(start, gbc);
add(start);
gbc.gridx = 2;
gbc.gridy = 25;
JButton load = new JButton(loadgame, btn);
load.setSize(btnwidth, btnheight);
load.setBackground(null);
load.setBorder(null);
load.setBorderPainted(false);
load.setHorizontalTextPosition(JButton.CENTER);
load.setVerticalTextPosition(JButton.CENTER);
gbl.setConstraints(load, gbc);
add(load);
gbc.gridx = 2;
gbc.gridy = 7;
JButton set = new JButton(settings, btn);
set.setSize(btnwidth, btnheight);
set.setBackground(null);
set.setBorder(null);
set.setBorderPainted(false);
set.setHorizontalTextPosition(JButton.CENTER);
set.setVerticalTextPosition(JButton.CENTER);
gbl.setConstraints(set, gbc);
add(set);
gbc.gridx = 2;
gbc.gridy = 9;
JButton end = new JButton(endgame, btn);
end.setSize(btnwidth, btnheight);
end.setBackground(null);
end.setBorder(null);
end.setBorderPainted(false);
end.setHorizontalTextPosition(JButton.CENTER);
end.setVerticalTextPosition(JButton.CENTER);
gbl.setConstraints(end, gbc);
add(end);
setVisible(true);
}
}
So sieht das ganze bisher aus. Die beiden Bilder sind unter dem Pfad "../pics/header.png" und "../pics/bg.png" gespeichert.
Und wenn wir schon mal dabei sind, verzweifle ich ebenfalls jedes Mal, wenn ich die Schriftart auf den Buttons ändern möchte, da hab ich es auch schon tausende Male probiert.
Die Schrift die ich gerne hätte ist unter dem Pfad "../fonts/Comicsmsh.ttf" zu finden, und diese würde ich auch gerne vergrößern, da der Text jetzt schon kaum lesbar ist und die neue Schrift nochmal kleiner ist.
Ich entschuldige mich, falls ich mich mal wieder viel zu kompliziert ausgedrückt habe und hoffe die Fortgeschrittenen und Profis unter euch können mir helfen
Ich verzweifle langsam, denn ich hab schon alles, was ich gefunden habe probiert, aber es klappt einfach nicht und ich sehe meinen Fehler nicht.
Ich möchte ein einfaches JFrame erstellen mit einem Hintergrund, einem "Header" (ich meine damit ein Bild, das den Titel anzeigt) und vier Buttons. Dazu habe ich den GridBagLayout-Manager verwendet.
Das Fenster wird erzeugt und die Buttons stehen auch, aber egal was ich versuche, ich kriege weder Header noch Background geladen
So sieht mein Code bisher aus:
package game;
public class Main {
public static void main(String[] args) {
new GUI();
}
}
package game;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
public class GUI extends JFrame{
static String gamename = "Your Way, Your Life";
String bgfile ="../pics/header.png";
String startgame = "Spiel starten", loadgame = "Spiel laden",
settings = "Einstellungen", endgame = "Spiel beenden";
static int screenwidth = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
static int screenheight = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
static int screenw = screenwidth / 2, screenh = (int) (screenheight / 1.5);
int btnwidth, btnheight;
public GUI() {
super (gamename);
setSize(screenw, screenh);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
GridBagLayout gbl = new GridBagLayout();
setLayout(gbl);
GridBagConstraints gbc = new GridBagConstraints();
Icon btn = new ImageIcon(getClass().getResource("../pics/btn.png"));
btnwidth = btn.getIconWidth();
btnheight = btn.getIconHeight();
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets (10,3,50,50);
gbc.gridx = 2;
gbc.gridy = 3;
gbc.gridheight = 1;
gbc.gridwidth = 1;
JButton start = new JButton(startgame, btn);
start.setSize(btnwidth, btnheight);
start.setBackground(null);
start.setBorder(null);
start.setBorderPainted(true);
start.setHorizontalTextPosition(JButton.CENTER);
start.setVerticalTextPosition(JButton.CENTER);
gbl.setConstraints(start, gbc);
add(start);
gbc.gridx = 2;
gbc.gridy = 25;
JButton load = new JButton(loadgame, btn);
load.setSize(btnwidth, btnheight);
load.setBackground(null);
load.setBorder(null);
load.setBorderPainted(false);
load.setHorizontalTextPosition(JButton.CENTER);
load.setVerticalTextPosition(JButton.CENTER);
gbl.setConstraints(load, gbc);
add(load);
gbc.gridx = 2;
gbc.gridy = 7;
JButton set = new JButton(settings, btn);
set.setSize(btnwidth, btnheight);
set.setBackground(null);
set.setBorder(null);
set.setBorderPainted(false);
set.setHorizontalTextPosition(JButton.CENTER);
set.setVerticalTextPosition(JButton.CENTER);
gbl.setConstraints(set, gbc);
add(set);
gbc.gridx = 2;
gbc.gridy = 9;
JButton end = new JButton(endgame, btn);
end.setSize(btnwidth, btnheight);
end.setBackground(null);
end.setBorder(null);
end.setBorderPainted(false);
end.setHorizontalTextPosition(JButton.CENTER);
end.setVerticalTextPosition(JButton.CENTER);
gbl.setConstraints(end, gbc);
add(end);
setVisible(true);
}
}

So sieht das ganze bisher aus. Die beiden Bilder sind unter dem Pfad "../pics/header.png" und "../pics/bg.png" gespeichert.
Und wenn wir schon mal dabei sind, verzweifle ich ebenfalls jedes Mal, wenn ich die Schriftart auf den Buttons ändern möchte, da hab ich es auch schon tausende Male probiert.
Die Schrift die ich gerne hätte ist unter dem Pfad "../fonts/Comicsmsh.ttf" zu finden, und diese würde ich auch gerne vergrößern, da der Text jetzt schon kaum lesbar ist und die neue Schrift nochmal kleiner ist.
Ich entschuldige mich, falls ich mich mal wieder viel zu kompliziert ausgedrückt habe und hoffe die Fortgeschrittenen und Profis unter euch können mir helfen