Java: problem med Pack()
Jeg har denne test klasse:import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ErrorFrame {
private JLabel textLabel = new JLabel("Der skete en fejl!");
private JFrame frame = new JFrame("Fejl");
private Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
public ErrorFrame() {
frame.setResizable(false);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
JPanel centerPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
JButton button = new JButton("Prøv igen");
bottomPanel.add(button);
centerPanel.add(textLabel);
frame.add(centerPanel, BorderLayout.CENTER);
frame.add(bottomPanel, BorderLayout.SOUTH);
frame.setVisible(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
frame.setVisible(false);
}
});
frame.pack();
frame.setLocation((dimension.width-frame.getWidth())/2, (dimension.height-frame.getHeight())/2);
}
public void setMessage(String message) {
textLabel.setText(message);
frame.pack();
frame.setLocation((dimension.width-frame.getWidth())/2, (dimension.height-frame.getHeight())/2);
}
public void setTitle(String title) {
frame.setTitle(title);
}
public void setSize(int width, int height) {
frame.pack();
}
public static void main(String[] args) {
ErrorFrame frame = new ErrorFrame();
frame.setMessage("Her er en meget, meget, meget lang tekst.");
}
}
Hvor I kompilerer denne, og kører den, håber jeg, at I lige som mig vil opleve at nogle gange kan man se alt teksten i vinduet, nogle gange kan man se noget af det og andre gange er vinduet helt lille.
Prøv at kør programmet 10 gange i træk.
Jeg er bange for, at det er setLocation der er problemet. Men håber der er nogen der kan hjælpe mig?
