Hallo,
schon einmal ein Danke an alle die mir helfen.
Ich möchste für ein Java Applet eine Oberfläche bauen. Der Anfang ist ein Banner ganz oben, darunter 3 Spalten mit eingabefeldern und ausgabefeldern (jeweils ein Label und eine Textbox bzw combo box) und ganz unten vieleicht mal eine Tabelle.
Leider sieht mein ergebnis bisher so aus:
Mein code ist derzeit folgender:
Die idee war mal für das applet ein borderlayout zu nehmen weil das der aufteilung so schön entsprach. die einzelnen spalten nutzen ein gridLayout, da so label und textfeld nebeneinander sind und die textfelder parallel.
Ich wollte da mal ein groupLayout testen, aber scheinbar habe (noch) ich nen jdk der das nich kann.
Die Positionierung passt soweit.
Die fragen sind jetzt folgende:
wie bekomme ich den layout manager dazu nicht so zu strecken und zu quetschen?
kann ich in einem label mehrzeilig schreiben? \n erkennt er zwar, reagiert aber nicht drauf.
kann ich das textfeld auf eingaben bzw. Ausgaben der länge 3 beschränken?
Mit freundlichem Gruß,
Laures
schon einmal ein Danke an alle die mir helfen.
Ich möchste für ein Java Applet eine Oberfläche bauen. Der Anfang ist ein Banner ganz oben, darunter 3 Spalten mit eingabefeldern und ausgabefeldern (jeweils ein Label und eine Textbox bzw combo box) und ganz unten vieleicht mal eine Tabelle.
Leider sieht mein ergebnis bisher so aus:
Mein code ist derzeit folgender:
Code:
private Dimension absoluteSize = new Dimension(622,400);
private BorderLayout mainLayout = new BorderLayout();
private JLabel jLabel_Banner1 = new JLabel(new ImageIcon(getClass().getResource("hc-pvp-news.jpg"), "Mein Banner"));
private JPanel jPanel_Input1 = new JPanel();
private Dimension inputDimension = new Dimension(200,200);
private JComboBox jCombo_Speed1 = new JComboBox();
private JComboBox jCombo_Type1 = new JComboBox(types);
private JLabel jLabel_MinDMG1 = new JLabel("Minimum Damage");
private JLabel jLabel_MaxDMG1 = new JLabel("Maximum Damage");
private JLabel jLabel_Type1 = new JLabel("Weapon Type");
private JLabel jLabel_Speed1 = new JLabel("Attack Speed");
private JTextField jText_MaxDMG1 = new JTextField("0",3);
private JTextField jText_MinDMG1= new JTextField("0",3);
private JPanel jPanel_Addition = new JPanel();
private Dimension additionDimension = new Dimension(200,300);
private JPanel jPanel_Crit = new JPanel();
private JLabel jLabel_CritChance = new JLabel("Critical Chance \n(%)");
private JTextField jText_CritChance = new JTextField("0",3);
private JLabel jLabel_CritBonus = new JLabel ("Critical Bonus (%)");
private JTextField jText_CritBonus = new JTextField("0",3);
private JPanel jPanel_Bonus = new JPanel();
private JLabel jLabel_BonusDMG = new JLabel ("Bonus Damage (%)");
private JTextField jText_BonusDMG = new JTextField("0",3);
private JPanel jPanel_Output = new JPanel();
private Dimension outputDimension = new Dimension(222,150);
private JLabel jLabel_DPSwoCrit = new JLabel ("Damage per Second (native)");
private JTextField jText_DPSwoCrit = new JTextField("0",4);
private JLabel jLabel_DPSwCrit = new JLabel ("Damage per Second (with Crit)");
private JTextField jText_DPSwCrit = new JTextField("0",4);
// End of variables declaration
public void init() {
// preferences
this.setLayout(mainLayout);
this.setSize(absoluteSize);
this.setMinimumSize(absoluteSize);
this.setMaximumSize(absoluteSize);
// Banner
this.add(BorderLayout.NORTH,jLabel_Banner1);
//Jpanel Input Definiton
jPanel_Input1.setSize(inputDimension);
jPanel_Input1.setBorder(BorderFactory.createTitledBorder("Input"));
jPanel_Input1.setLayout(new GridLayout(4, 2));
//mindmg label/text
jPanel_Input1.add(jLabel_MinDMG1);
jPanel_Input1.add(jText_MinDMG1);
//masdmg label/text
jPanel_Input1.add(jLabel_MaxDMG1);
jPanel_Input1.add(jText_MaxDMG1);
//type label/text
jPanel_Input1.add(jLabel_Type1);
jPanel_Input1.add(jCombo_Type1);
//speed label/text
jPanel_Input1.add(jLabel_Speed1);
jPanel_Input1.add(jCombo_Speed1);
// add input pane
this.add(BorderLayout.WEST,jPanel_Input1);
// ADDITIONAL COLUMN
jPanel_Addition.setLayout(new BoxLayout(jPanel_Addition,BoxLayout.Y_AXIS));
jPanel_Addition.setSize(additionDimension);
// Criticals
jPanel_Crit.setLayout(new GridLayout(2,2));
jPanel_Crit.setBorder(BorderFactory.createTitledBorder("Critical"));
jPanel_Crit.add(jLabel_CritChance);
jPanel_Crit.add(jText_CritChance);
jPanel_Crit.add(jLabel_CritBonus);
jPanel_Crit.add(jText_CritBonus);
jPanel_Addition.add(jPanel_Crit);
// Bonus
jPanel_Bonus.setLayout(new GridLayout(2,2));
jPanel_Bonus.setBorder(BorderFactory.createTitledBorder("Bonus"));
jPanel_Bonus.add(jLabel_BonusDMG);
jPanel_Bonus.add(jText_BonusDMG);
jPanel_Addition.add(jPanel_Bonus);
this.add(BorderLayout.CENTER,jPanel_Addition);
//OUTPUT COLUMN
jPanel_Output.setLayout(new GridLayout(2,3));
jPanel_Output.setBorder(BorderFactory.createTitledBorder("Output"));
jPanel_Output.setSize(outputDimension);
jPanel_Output.add(jLabel_DPSwoCrit);
jPanel_Output.add(jText_DPSwoCrit);
jPanel_Output.add(jLabel_DPSwCrit);
jPanel_Output.add(jText_DPSwCrit);
this.add(BorderLayout.EAST,jPanel_Output);
}
Die idee war mal für das applet ein borderlayout zu nehmen weil das der aufteilung so schön entsprach. die einzelnen spalten nutzen ein gridLayout, da so label und textfeld nebeneinander sind und die textfelder parallel.
Ich wollte da mal ein groupLayout testen, aber scheinbar habe (noch) ich nen jdk der das nich kann.
Die Positionierung passt soweit.
Die fragen sind jetzt folgende:
wie bekomme ich den layout manager dazu nicht so zu strecken und zu quetschen?
kann ich in einem label mehrzeilig schreiben? \n erkennt er zwar, reagiert aber nicht drauf.
kann ich das textfeld auf eingaben bzw. Ausgaben der länge 3 beschränken?
Mit freundlichem Gruß,
Laures