Hallo liebes Java-Forum,
die Frage ist zwar irgendwie blöd gestellt und ich schäme mich auch ein bisschen däfür, aber es nützt ja Manchmal nichts.
Ziel: (richtiger Aufbau eines JDialog) -> hier nür auf die Höhe bezogen
-0.1 * Framehöhe Abstand zur ersten SwingForm
-0.2 * Framehöhe als Höhe eines JTextField
-0.1 * Framehöhe Abstand zur nächsten SwingForm
-0.2 * Framehöhe als Höhe eines weiteren JTextField
-0.1 * Framehöhe Abstand zur letzten SwingForm
-0.2 * Framehöhe als Höhe eines JButton (bzw 2 Buttons)
-0.1 * Framehöhe Abstand von der letzten SwingForm zum Rand
Macht bei mir zusammen 1 ... aber es wird trotzdem nicht richtig angezeigt. Der Abstand zwischen dem Button und dem Rand ist viel zu groß. Woran kann das liegen?
Damit ihr ein Eindruck von der Darstellung bei mir bekommt, hab ich ein Screenshot davon in den Anhang gepackt.
Da es ja mit Sicherheit an meinen Code liegt und ihr nicht Hellsehen könnt ... haha:
die Frage ist zwar irgendwie blöd gestellt und ich schäme mich auch ein bisschen däfür, aber es nützt ja Manchmal nichts.
Ziel: (richtiger Aufbau eines JDialog) -> hier nür auf die Höhe bezogen
-0.1 * Framehöhe Abstand zur ersten SwingForm
-0.2 * Framehöhe als Höhe eines JTextField
-0.1 * Framehöhe Abstand zur nächsten SwingForm
-0.2 * Framehöhe als Höhe eines weiteren JTextField
-0.1 * Framehöhe Abstand zur letzten SwingForm
-0.2 * Framehöhe als Höhe eines JButton (bzw 2 Buttons)
-0.1 * Framehöhe Abstand von der letzten SwingForm zum Rand
Macht bei mir zusammen 1 ... aber es wird trotzdem nicht richtig angezeigt. Der Abstand zwischen dem Button und dem Rand ist viel zu groß. Woran kann das liegen?
Damit ihr ein Eindruck von der Darstellung bei mir bekommt, hab ich ein Screenshot davon in den Anhang gepackt.
Da es ja mit Sicherheit an meinen Code liegt und ihr nicht Hellsehen könnt ... haha:
Java:
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
*
* @author
*/
public final class CreateNewPicDialog extends JDialog implements ActionListener{
private int arrayWidth, arrayHeight;
private final int placeHolderWidth, placeHolderHeight;
private static int frameWidth, frameHeight, framePositionX, framePositionY;
private JButton button1, button2;
private JTextField wField, hField;
private Box box1, box2;
private static final JPanel panel = new JPanel();
public CreateNewPicDialog(){
frameWidth = (int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth() * 0.18);
frameHeight = (int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight() * 0.18);
framePositionX = (int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth() / 2 - frameWidth / 2);
framePositionY = (int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 2 - frameHeight / 2);
placeHolderWidth = (int) (frameWidth * 0.1);
placeHolderHeight = (int) (frameHeight * 0.1);
addSwingForms();
}
public void initSwingForms(){
button1 = new JButton("Erstellen");
button2 = new JButton("Abbrechen");
wField = new JTextField("Breite in Pixeln");
hField = new JTextField("Höhe in Pixeln");
}
public void setSwingForms(){
// buttons and listener
button1.setPreferredSize(new Dimension((int)(frameWidth * 0.37), (int)(frameHeight * 0.2)));
button1.setLocation(placeHolderWidth, (int)(hField.getLocation().getY() + hField.getPreferredSize().getHeight() + placeHolderHeight));
button2.setPreferredSize(new Dimension((int)(frameWidth * 0.37), (int)(frameHeight * 0.2)));
button2.setLocation(frameWidth - placeHolderWidth - (int) button2.getSize().getWidth(),
(int)(hField.getLocation().getY() + hField.getPreferredSize().getHeight() + placeHolderHeight));
button1.addActionListener(this);
button2.addActionListener(this);
//fields
wField.setPreferredSize(new Dimension((int)(frameWidth * 0.8), (int)(frameHeight * 0.2)));
wField.setLocation(placeHolderWidth, placeHolderHeight);
hField.setPreferredSize(new Dimension ((int)(frameWidth * 0.8), (int)(frameHeight * 0.2)));
hField.setLocation(placeHolderWidth, placeHolderHeight * 2 + (int) wField.getSize().getHeight());
}
public void addSwingForms(){
initSwingForms();
setSwingForms();
panel.add(wField);
panel.add(hField);
panel.add(button1);
panel.add(button2);
}
public static void main(String[] args) {
CreateNewPicDialog dialog = new CreateNewPicDialog();
dialog.setSize(frameWidth, frameHeight);
dialog.setLocation(framePositionX, framePositionY);
dialog.setTitle("Neues Bild erstellen:");
dialog.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
dialog.setResizable(false);
dialog.setModal(true);
dialog.add(panel);
dialog.setVisible(true);
}
}