1Danke
ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
444
444
EMPFEHLEN
-
Ich bin gerade dabei, einen einfachen Prototypen zu Designen, doch leider scheitere ich bereits bei der Positionierung.
Ich möchte das JPanel pCustomer im CENTER ausrichten, worauf es leider völlig verschwindet. Wenn ich es z.B. nach SOUTH verschiebe, wird es komischerweise angezeigt (Zeile 49).
Wenn ich die Zeilen 62-64 entferne, funktioniert alles.
Angepasste Darstellung:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test extends JPanel implements ActionListener { private JPanel pTop = new JPanel(); private JPanel pMenue = new JPanel(); private JPanel pContent = new JPanel(); private JPanel pCustomer = new JPanel(); private JPanel pEnq = new JPanel(); private JPanel pCustomerMenue = new JPanel(); private JTextField tf1 = new JTextField(); private JButton bCustomer = new JButton("Customer"); private JButton bEnq = new JButton("Product"); private JButton bCNew = new JButton("New Customer"); private JLabel lCustomer = new JLabel("Customer"); String[] customerString = {"--- SELECT -- ", "New Customer", "Edit Customer", "Delete Customer"}; private JComboBox cb1 = new JComboBox(customerString); private JLabel lRes = new JLabel(); String[] productString = {"--- SELECT -- ", "Sell Product", "Enquire Product", "Complain Product"}; private JLabel lWelcome = new JLabel("Welcome to our System!"); private JLabel lNo = new JLabel("Customer Number: "); private JLabel lEnq = new JLabel("Enquiry"); public Test() { this.setLayout(new BorderLayout()); // pTop this.add(pTop, BorderLayout.NORTH); pTop.setLayout(new BorderLayout()); pTop.add(lNo, BorderLayout.WEST); pTop.add(tf1, BorderLayout.CENTER); // pMenue this.add(pMenue, BorderLayout.WEST); pMenue.setLayout(new GridLayout(5, 1)); pMenue.add(bCustomer); pMenue.add(bEnq); // pContent this.add(pContent, BorderLayout.CENTER); pContent.add(lWelcome); pContent.setLayout(new BorderLayout()); pContent.setBackground(Color.GREEN); // pCustomer pContent.add(pCustomer, BorderLayout.CENTER); // EAST, SOUTH, WEST funktioniern hier; ich möchte es aber zentriert haben. pCustomer.add(cb1); pCustomer.add(lRes); pCustomer.setVisible(false); pCustomer.setBackground(Color.blue); // pCustomerMenue pContent.add(pCustomerMenue, BorderLayout.NORTH); pCustomerMenue.add(bCNew); pCustomerMenue.setVisible(false); pCustomerMenue.setBackground(Color.red); // pEnq pContent.add(pEnq, BorderLayout.CENTER); pEnq.add(lEnq); pEnq.setVisible(false); // --- bCustomer.addActionListener(this); bEnq.addActionListener(this); } @Override public void actionPerformed(ActionEvent e) { Object source = e.getSource(); lWelcome.setVisible(false); if (source == bCustomer) { init(); pCustomer.setVisible(true); pCustomerMenue.setVisible(true); bCustomer.setEnabled(false); } if (source == bEnq) { init(); pEnq.setVisible(true); bEnq.setEnabled(false); } } public void init() { pCustomer.setVisible(false); pCustomerMenue.setVisible(false); pEnq.setVisible(false); bCustomer.setEnabled(true); bEnq.setEnabled(true); } }
Sieht jemand den Fehler?
Vielen Dank!Geändert von chuvak (29.12.11 um 15:19 Uhr) Grund: Code angepasst
"Ein Pessimist ist ein Optimist mit Erfahrung."
-
29.12.11 15:44 #2
Das Problem ist
Beim BorderLayout können nur genau fünf Objekte verwaltet werden, und zwar für jede Himmelsrichtung und die Mitte. Wenn an einer Stelle ein neues Objekt eingefügt wird, dann wird das nicht hinzugefügt, sondern es ersetzt das alte! Und der Code macht eben genau das. Das Panel pCustomer wird quasi weggeworfen und durch pEnq ersetzt, daher geht das auch nicht.Code java:1 2 3 4
// pEnq pContent.add(pEnq, BorderLayout.CENTER); pEnq.add(lEnq); pEnq.setVisible(false);
Da wirst du dir wohl was anderes überlegen müssen.Man sagt, das Schwert eines Samurai sei seine Seele ...
Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.
Das Schmieden ist eine Kunst; Das Schreiben auch ;)
Ähnliche Themen
-
Wie erreiche ich das unerlaubte "float:center"?
Von JBJHJM im Forum CSSAntworten: 4Letzter Beitrag: 18.08.10, 11:53 -
Problem Center-Bereich BorderLayout und Checkboxes als Tabellenspalte
Von Kaastn im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 12.03.07, 12:25 -
<input type="button"... und text-align:center geht nicht?
Von rethus im Forum CSSAntworten: 3Letzter Beitrag: 16.02.07, 17:29 -
DIV relativ zum "center" positionieren - wie?
Von Hektik im Forum CSSAntworten: 3Letzter Beitrag: 11.05.06, 20:55 -
5.1 System, Center und Rear/Right sind "gekoppelt"
Von DrEvil im Forum Audiotechnik, Recording & Audio-SoftwareAntworten: 1Letzter Beitrag: 07.01.05, 21:58





Zitieren
Login





