Image laden im GridBagLayout

BuBBles2904

Neues Mitglied
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);
}
} 2017-01-05 20_07_40-Workspace - Java - Your Way, Your Life_src_game_GUI.java - Eclipse.png

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 :)
 

Enceladus271

Bekanntes Mitglied
Wenn du ein Hintergrundbild haben möchtest, solltest du eine Klasse von JPanel ableiten und die Methode paintComponent überschreiben. Beispiel:
Java:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ImagePanel extends JPanel {

    private final Image image;

    public ImagePanel(BufferedImage image) {
        super();
        this.image = image;
        setPreferredSize(new Dimension(image.getWidth(), image.getHeight()));
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image, 0, 0, this);
    }

    public static void main(String[] args) throws IOException {
        BufferedImage image = ImageIO.read(ImagePanel.class.getResource("../pics/bg.png"));
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new ImagePanel(image));
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

}

Die Buttons musst du dann natürlich nicht mehr zum Frame hinzufügen, sondern zum Panel. Wenn du zusätzlich noch oben den Bild mit dem Titel einblenden möchstest, kannst du dafür am Besten einfach ein JLabel nehmen.

Eine ttf Datei einbinden habe ich noch nie gemacht, aber ich denke es sollt hiermit funktionieren: http://docs.oracle.com/javase/7/docs/api/java/awt/Font.html#createFont(int, java.io.File)

Wenn die Schrift zu klein ist kannst du die Schriftgröße des Font setzen:
font.deriveFont(16.0f);
 

Enceladus271

Bekanntes Mitglied
Am besten du erzeugst einfach ein ImagePanel, fügst diesem die Buttons hinzu (du kannst beim Panel das gleiche Layout verwenden das du für das Frame verwendest), und fügst dann das Panel dem Frame hinzu.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K File (png) in Image laden Java Basics - Anfänger-Themen 3
H Image laden Java Basics - Anfänger-Themen 4
S Image in Panel laden Java Basics - Anfänger-Themen 12
L Image laden und auf jPanel ausgeben Java Basics - Anfänger-Themen 7
R Image laden die Zweite Java Basics - Anfänger-Themen 4
R Image laden Java Basics - Anfänger-Themen 10
R Image aus jar laden (dieses mal awt) Java Basics - Anfänger-Themen 19
G Image laden Java Basics - Anfänger-Themen 16
O Image laden Java Basics - Anfänger-Themen 6
M Laden eines Image mit relativer Pfadangabe Java Basics - Anfänger-Themen 3
lin Image pixelweise in 3D Array laden Java Basics - Anfänger-Themen 4
K Bild in Image-Objekt laden Java Basics - Anfänger-Themen 27
G Area mit Teil-Image füllen Java Basics - Anfänger-Themen 0
B Image Matching in Memory Minigame Java Basics - Anfänger-Themen 7
J JLabel bzw. Image Icon mit KeyEvent bewgen Java Basics - Anfänger-Themen 9
Butzibu Image Loader lädt nicht alle Bilder: Java Basics - Anfänger-Themen 4
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
T Image Icon Java Basics - Anfänger-Themen 3
M Image löschen Java Basics - Anfänger-Themen 2
G Image in Vordergrund Java Basics - Anfänger-Themen 3
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
S Image Datei selektieren und in Projekt Verzeichnis abspeichern/kopieren Java Basics - Anfänger-Themen 16
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
R Image drehen Java Basics - Anfänger-Themen 1
R Image Teilen Java Basics - Anfänger-Themen 3
N Image von Resource wird nicht geladen Java Basics - Anfänger-Themen 2
N Datentypen Image zu Byte-Array Java Basics - Anfänger-Themen 4
F Image wird nicht gezeichent?! Java Basics - Anfänger-Themen 21
N Hintergrund image mit .setContentPane Java Basics - Anfänger-Themen 6
W aus Methode auf JLabel zugreifen und Image verändern Java Basics - Anfänger-Themen 1
S buffered image Java Basics - Anfänger-Themen 18
V Scale displayed Image via JCheckBox Java Basics - Anfänger-Themen 1
I Resize Image - Einlesen von InputStream Java Basics - Anfänger-Themen 3
M Image Download klappt nicht mehr Java Basics - Anfänger-Themen 4
Chava Testprojekt.Text.Image.Button Java Basics - Anfänger-Themen 4
S Image nach MausMotion rotieren Java Basics - Anfänger-Themen 7
L Erste Schritte Java Image und Video-Slideshow GUI Java Basics - Anfänger-Themen 3
D Kleinere Positionsangabe als einzelne Pixel bei Image? Java Basics - Anfänger-Themen 28
H Prüfen, ob jpg image schon vorhanden ist, bevor es geladen wird Java Basics - Anfänger-Themen 13
V Image Crawler Java Basics - Anfänger-Themen 3
P Erste Schritte Buffered Image splitten und darstellen Java Basics - Anfänger-Themen 2
P Erste Schritte Image anzeigen in ausführbarer jar mit der Toolkit class Java Basics - Anfänger-Themen 8
T udp -> bytearray -> image -> ausgabe via frame Java Basics - Anfänger-Themen 6
A Image (Bitmap) in String (für XML) Java Basics - Anfänger-Themen 7
F Buffered Image über Socket versenden Java Basics - Anfänger-Themen 6
T Image ist Null - warum? Java Basics - Anfänger-Themen 18
V Image -> 2D Array (int [][]) Java Basics - Anfänger-Themen 4
V FileInputStream auf ein swt.Image Java Basics - Anfänger-Themen 6
A Wie kann man etwas von Typ Image wieder löschen? Java Basics - Anfänger-Themen 7
F Image übertragen und zeichnen Java Basics - Anfänger-Themen 8
G Problem mit Image.IO.read( File ) Java Basics - Anfänger-Themen 3
G Image spiegeln Java Basics - Anfänger-Themen 17
Y Trotz add wird Image in GradBagLayout nicht angezeigt Java Basics - Anfänger-Themen 5
Spin Image helper Java Basics - Anfänger-Themen 6
M Image Metadaten setzen Java Basics - Anfänger-Themen 2
Spin Backgrond Color von Image ermitteln Java Basics - Anfänger-Themen 2
C Image draw... Java Basics - Anfänger-Themen 7
M Image-Icon Ändern Java Basics - Anfänger-Themen 15
J Image upload auf ImageShack,TinyPic usw. Java Basics - Anfänger-Themen 11
M Image zeichenen mit Double Werten Java Basics - Anfänger-Themen 4
B polyline auf buffered image malen Java Basics - Anfänger-Themen 2
G Image to File Java Basics - Anfänger-Themen 4
T Image Position erkennen Java Basics - Anfänger-Themen 6
Spin Image skalieren Java Basics - Anfänger-Themen 2
Spin Background Image Java Basics - Anfänger-Themen 2
K Image / drawImage Java Basics - Anfänger-Themen 2
P Buffered Image, Bereich ausschneiden Java Basics - Anfänger-Themen 3
F Image Editor Java Basics - Anfänger-Themen 2
B Image flimmert Java Basics - Anfänger-Themen 4
Povlsen84 Image exakt erzeugen Java Basics - Anfänger-Themen 5
B Teile einer Image in neue Image kopieren Java Basics - Anfänger-Themen 4
X ARGB Werte auslesen aus Image Java Basics - Anfänger-Themen 2
O Image Loader laedt bild nicht Java Basics - Anfänger-Themen 11
H String to image! Java Basics - Anfänger-Themen 6
H2SO3- image beim awt frame wegmachen Java Basics - Anfänger-Themen 2
M Probleme mit Manifest und Image Java Basics - Anfänger-Themen 2
T Java Bilderverwaltung - Image Fetcher Problem Java Basics - Anfänger-Themen 4
E Image in Datei speichern bzw anzeigen Java Basics - Anfänger-Themen 5
O Drag & Drop mit Image? Java Basics - Anfänger-Themen 2
G Image/-Icon wird nicht auf JPanel angezeigt Java Basics - Anfänger-Themen 4
M Image aus JPanel Java Basics - Anfänger-Themen 2
G Kompletten (image) Array löschen Java Basics - Anfänger-Themen 14
P Fileinputstream to image? Java Basics - Anfänger-Themen 3
G Image Problem Java Basics - Anfänger-Themen 5
G Image Java Basics - Anfänger-Themen 3
M draw.Image Java Basics - Anfänger-Themen 11
G Image Java Basics - Anfänger-Themen 2
S Image-Datei mit relativem Pfad angeben Java Basics - Anfänger-Themen 3
S Botton und Image kombinieren Java Basics - Anfänger-Themen 3
S import javax.image.io.*; funktioniert nicht Java Basics - Anfänger-Themen 28
D Image drehen Java Basics - Anfänger-Themen 6
DeeDee0815 Uncaught error fetching image Java Basics - Anfänger-Themen 2
A Image erstellen Java Basics - Anfänger-Themen 3
N Grösse eines Image ändern? Java Basics - Anfänger-Themen 4
I Image Dateinformationen auslesen Java Basics - Anfänger-Themen 7
A image uploader applet Java Basics - Anfänger-Themen 10
S image speichern Java Basics - Anfänger-Themen 12
D ImageIO metadata auslesen aus png image Java Basics - Anfänger-Themen 2
G Ausmaße eines Image-Object herrausfinden Java Basics - Anfänger-Themen 4
R Einem Image-Object Alpha-Transparenz hinzufügen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben