Hallöchen ich arbeite mich grade in die Layoutmanager von Swing ein und habe eine kleine frage zum "designen" von anwendungen, und zwar gehts mir vorwiegend sauberen und leicht verständlichen Code zu schreiben, deshalb die Frage wie würdet ihr z.B dieses Frame erstellen, ohne es von JFrame etc. abzuleiten :
Über Anregungen andere Layoutmanager zu nutzen oder allgemein saubereren Code zu schreiben bin ich schon mal vorab dankbar, gern auch Anregungen bei Code doppelung etc.
immer her mit der konstruktiven Kritik
opcorn:

Java:
package de.kaoZ.dialogViews;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import de.kaoZ.user.User;
/**
*
* @author kaoZ
* @version 1.0
*/
public class UserView implements IView{
User user;
JFrame frame;
JLabel infoLabel, userLabel,companyLabel, addressLabel, streetLabel , telLabel;
JTextField username, company, address, street, tel;
JPanel panelOne,panelTwo, panelThree;
JButton okBtn;
GridBagConstraints gbc;
public UserView() {
initFrame();
}
private void initFrame() {
//Frame
frame = new JFrame("Rechnungs Editor v1.0");
frame.setSize(500,400);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
//Layout Components
gbc = new GridBagConstraints();
gbc.insets = new Insets(5,5,5,5);
//Panel
panelOne = new JPanel();
panelOne.setBorder(BorderFactory.createEmptyBorder(20,10,0,10));
panelTwo = new JPanel(new GridBagLayout());
panelTwo.setBorder(BorderFactory.createEmptyBorder(0,20,10,50));
panelThree = new JPanel();
panelThree.setBorder(BorderFactory.createEmptyBorder(0,0,10,0));
//Buttons
okBtn = new JButton(" Einrichtung Abschließen ");
okBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Automatisch generierter Methodenstub
}
});
//Label for panelOne
infoLabel = new JLabel("Bitte geben Sie hier Ihre Daten ein :");
//Set Grid Positions for panelTwo
userLabel = new JLabel("Inhaber :");
gbc.gridx = 0;
gbc.gridy = 1;
gbc.anchor = GridBagConstraints.WEST;
panelTwo.add(userLabel,gbc);
username = new JTextField();
gbc.gridx = 0;
gbc.gridy = 2;
username.setPreferredSize(new Dimension(200,25));
gbc.fill = GridBagConstraints.HORIZONTAL;
panelTwo.add(username,gbc);
companyLabel = new JLabel("Firma :");
gbc.gridx = 0;
gbc.gridy = 3;
panelTwo.add(companyLabel,gbc);
company = new JTextField();
company.setPreferredSize(new Dimension(200,25));
gbc.gridx = 0;
gbc.gridy = 4;
panelTwo.add(company,gbc);
addressLabel = new JLabel("PLZ/Ort :");
gbc.gridx = 0;
gbc.gridy = 5;
panelTwo.add(addressLabel,gbc);
address = new JTextField();
address.setPreferredSize(new Dimension(200,25));
gbc.gridx = 0;
gbc.gridy = 6;
panelTwo.add(address,gbc);
streetLabel = new JLabel("Straße/Hausnummer :");
gbc.gridx = 0;
gbc.gridy = 7;
panelTwo.add(streetLabel,gbc);
street = new JTextField();
street.setPreferredSize(new Dimension(200,25));
gbc.gridx = 0;
gbc.gridy = 8;
panelTwo.add(street,gbc);
//Add Components to Frame
panelOne.add(infoLabel);
panelThree.add(okBtn);
frame.add(BorderLayout.PAGE_START, panelOne);
frame.add(BorderLayout.LINE_START, panelTwo);
frame.add(BorderLayout.PAGE_END, panelThree);
}
@Override
public void show() {
frame.setVisible(true);
}
}
Über Anregungen andere Layoutmanager zu nutzen oder allgemein saubereren Code zu schreiben bin ich schon mal vorab dankbar, gern auch Anregungen bei Code doppelung etc.
immer her mit der konstruktiven Kritik
Zuletzt bearbeitet: