Hallo zusammen!
Ich habe mit GUI angefangen, und will ein kleines Text-Story-Game programmieren.
Leider wird dennoch der Text, den ich über ein Jlabel ausgeben will nicht angezeigt.
Ich habe ein ImageIcon als Hintergrundbild, und vermute, dass das der Fehler ist.
Könnt ihr mir helfen?
Hier ist der Code vom Window:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.Color;
import java.awt.font.*;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.*;
public class StoryWindow extends JFrame {
Font font = new Font("Arial", 0, 20);
ImageIcon bild;
JLabel background;
JLabel text;
public StoryWindow(ActionListener listener) {
setTitle("Story");
setSize(500,500);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
bild = new ImageIcon("background1.png");
JPanel mainpanel = new JPanel();
mainpanel.setOpaque(true);
add(mainpanel);
JPanel buttonleiste = new JPanel();
add(buttonleiste, BorderLayout.SOUTH);
buttonleiste.setBackground(Color.gray);
buttonleiste.setPreferredSize(new Dimension(40,40));
background = new JLabel(bild);
mainpanel.add(background);
text = new JLabel();
text.setText("Test");
mainpanel.add(text);
JButton auswahlA = new JButton("Start");
JButton auswahlB = new JButton("Exit");
buttonleiste.add(auswahlA);
buttonleiste.add(auswahlB);
auswahlA.setFont(font);
auswahlB.setFont(font);
auswahlA.addActionListener(listener);
auswahlB.addActionListener(listener);
}
public void showMessage(String msg) {
text.setText(msg);
text.setFont(font);
}
}
Hier ist noch der Code vom Controller:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Controller implements ActionListener {
private StoryWindow window;
public void startStory() {
window = new StoryWindow(this);
window.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("Start")) {
window.showMessage("Start");
}
else if (command.equals("Exit")) {
System.exit(0);
}
}
}
Ich habe mit GUI angefangen, und will ein kleines Text-Story-Game programmieren.
Leider wird dennoch der Text, den ich über ein Jlabel ausgeben will nicht angezeigt.
Ich habe ein ImageIcon als Hintergrundbild, und vermute, dass das der Fehler ist.
Könnt ihr mir helfen?
Hier ist der Code vom Window:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.Color;
import java.awt.font.*;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.*;
public class StoryWindow extends JFrame {
Font font = new Font("Arial", 0, 20);
ImageIcon bild;
JLabel background;
JLabel text;
public StoryWindow(ActionListener listener) {
setTitle("Story");
setSize(500,500);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
bild = new ImageIcon("background1.png");
JPanel mainpanel = new JPanel();
mainpanel.setOpaque(true);
add(mainpanel);
JPanel buttonleiste = new JPanel();
add(buttonleiste, BorderLayout.SOUTH);
buttonleiste.setBackground(Color.gray);
buttonleiste.setPreferredSize(new Dimension(40,40));
background = new JLabel(bild);
mainpanel.add(background);
text = new JLabel();
text.setText("Test");
mainpanel.add(text);
JButton auswahlA = new JButton("Start");
JButton auswahlB = new JButton("Exit");
buttonleiste.add(auswahlA);
buttonleiste.add(auswahlB);
auswahlA.setFont(font);
auswahlB.setFont(font);
auswahlA.addActionListener(listener);
auswahlB.addActionListener(listener);
}
public void showMessage(String msg) {
text.setText(msg);
text.setFont(font);
}
}
Hier ist noch der Code vom Controller:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Controller implements ActionListener {
private StoryWindow window;
public void startStory() {
window = new StoryWindow(this);
window.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("Start")) {
window.showMessage("Start");
}
else if (command.equals("Exit")) {
System.exit(0);
}
}
}