Hvorfor vises denne frame ikke med de korrekte mål
jeg har et problem med at få en normal controllerklasse til at starte en gui op. controllerklassen extender en guimaker klasse der skulle have de nødvendige metoder. et andet sted i programmet har jeg extended den samme klasse og ikke haft problemer.GUI controller:
public class LMKController extends GUIMaker
{
MainGUI mainGUI = new MainGUI();
public LMKController()
{
setGUIproperties(mainGUI);
setFrameVisible(mainGUI);
}
}
GUI makeren som controlleren extender:
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.UIManager;
import java.awt.Dimension;
import java.awt.Toolkit;
public class GUIMaker
{
public GUIMaker()
{
}
public void setGUIproperties(Frame frame)
{
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height)
{
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width)
{
frameSize.width = screenSize.width;
}
System.out.println(frameSize.width+" "+frameSize.height);
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
}
public void setFrameVisible(Frame frame)
{
frame.setVisible(true);
}
}
Selve GUI'en
import java.util.ArrayList;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JButton;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import java.awt.SystemColor;
import javax.swing.JComboBox;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
public class LoginGUI extends JFrame
{
private JLabel jLabel1 = new JLabel();
private JLabel jLabel2 = new JLabel();
private JLabel jLabel3 = new JLabel();
private JTextField serverJtextField = new JTextField();
private JTextField userNameJtextField = new JTextField();
private JPasswordField passwordJpasswordField = new JPasswordField();
private JButton loginButton = new JButton();
private JComboBox typeJComboBox = new JComboBox();
private JLabel jLabel4 = new JLabel();
private JTextField portJTextField = new JTextField();
private JLabel jLabel5 = new JLabel();
private JTextField baseJTextField = new JTextField();
private JLabel messageLabel = new JLabel();
private DatabaseConnector dbConnector;
private String dataBaseType="";
public LoginGUI(DatabaseConnector dbConnector)
{
this.dbConnector=dbConnector;
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
private void jbInit() throws Exception
{
this.getContentPane().setLayout(null);
this.setSize(new Dimension(281, 230));
this.setTitle("Indtast adgangsoplysninger");
jLabel1.setText("Username:");
jLabel1.setBounds(new Rectangle(5, 70, 60, 25));
jLabel2.setText("Server:");
jLabel2.setBounds(new Rectangle(5, 10, 40, 25));
jLabel3.setText("Password:");
jLabel3.setBounds(new Rectangle(5, 95, 60, 25));
serverJtextField.setBounds(new Rectangle(75, 10, 195, 20));
serverJtextField.setBackground(SystemColor.activeCaptionText);
serverJtextField.setText("stadsora.admnet.dfh.dk");
typeJComboBox.addItem("Lægemiddelkandidat bevis");
typeJComboBox.addItem("Bachelorbevis");
userNameJtextField.setBounds(new Rectangle(75, 70, 195, 20));
passwordJpasswordField.setBounds(new Rectangle(75, 95, 195, 20));
loginButton.setText("All your base are belong to us!");
loginButton.setBounds(new Rectangle(5, 145, 265, 25));
loginButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
loginButton_actionPerformed(e);
}
});
typeJComboBox.setBounds(new Rectangle(75, 120, 195, 20));
jLabel4.setText("DiplomType:");
jLabel4.setBounds(new Rectangle(5, 125, 60, 15));
portJTextField.setText("1522");
portJTextField.setBounds(new Rectangle(75, 35, 65, 20));
jLabel5.setText("Port + Base");
jLabel5.setBounds(new Rectangle(5, 40, 60, 15));
baseJTextField.setText("STAX");
baseJTextField.setBounds(new Rectangle(145, 35, 125, 20));
messageLabel.setText("Indtast connection oplysninger");
messageLabel.setBounds(new Rectangle(5, 175, 265, 25));
this.getContentPane().add(messageLabel, null);
this.getContentPane().add(baseJTextField, null);
this.getContentPane().add(jLabel5, null);
this.getContentPane().add(portJTextField, null);
this.getContentPane().add(jLabel4, null);
this.getContentPane().add(typeJComboBox, null);
this.getContentPane().add(loginButton, null);
this.getContentPane().add(passwordJpasswordField, null);
this.getContentPane().add(userNameJtextField, null);
this.getContentPane().add(serverJtextField, null);
this.getContentPane().add(jLabel3, null);
this.getContentPane().add(jLabel2, null);
this.getContentPane().add(jLabel1, null);
}
private void loginButton_actionPerformed(ActionEvent e)
{
dbConnector.setHostname(serverJtextField.getText());
dbConnector.setDbName(baseJTextField.getText());
dbConnector.setPort(portJTextField.getText());
dbConnector.setUserName(userNameJtextField.getText());
dbConnector.setPassword(passwordJpasswordField.getText());
dataBaseType=(String)typeJComboBox.getSelectedItem();
try
{
dbConnector.initialize();
messageLabel.setText("Connected to database...");
}
catch (Exception ex)
{
messageLabel.setText(ex.toString());
ex.printStackTrace();
}
}
public String getDataBaseType()
{
return dataBaseType;
}
}
