JFrameHuvudfönstret med standardknappar, titelrad och utseendet vi känner igen från det operativsystem vi använder. Skapas såhär:
JFrame frame = new JFrame("GUIdemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel
En panel är en klass som ärver av klassen container, vilket betyder att den kan innehålla andra komponenter, tex knappar, textfält eller andra containers. Här skapas panelerna som används i GUIdemo:
// Create panelsMetoden setLayout styr på vilket sätt komponenterna i panelen ska placeras ut. Flowlayout är mest basic. Där fylls allting på från vänster till höger tills det inte får plats fler, sen börjar nästa rad fyllas på. Borderlayout placerar ut längs kanterna eller i mitten: BorderLayout.NORTH, SOUTH, EAST, WEST, CENTER.
JPanel mp = new JPanel(); // Main panel
JPanel bp = new JPanel(); // Button panel
JPanel np = new JPanel(); // North Panel
mp.setLayout(new BorderLayout());
bp.setLayout(new FlowLayout());
np.setLayout(new FlowLayout());
np.setBorder(new TitledBorder("North Panel"));
bp.setBorder(new TitledBorder("Buttonpanel"));
mp.setBorder(new TitledBorder("Main Panel"));
Här skapas knappar till den nedre panelen, och knapp-panelen bp placeras i main-panelen i SOUTH-läge:
// Create buttons to button panelSedan skapar vi knappar och choice-list till den övre "north panelen" np:
bp.add(new JButton("Panelbutton1"));
bp.add(new JButton("Panelbutton2"));
mp.add(bp, BorderLayout.SOUTH);
// Add stuff to north panelSkapa text-fält och scrollbar panel:
np.add(new JLabel("JLabel"));
np.add(new JButton("JButton"));
// Create Choice-list and add to np.
Choice ch = new Choice();
ch.add(new String("Choice"));
ch.addItem(new String("-list"));
np.add(ch);
// Create textareaSist av allt ska panelerna (och ett par labels som visa east & west) placeras ut på huvudpanelen mp:
JTextArea ta = new JTextArea(10, 20);
ta.append("JTextArea\ninside a JScrollPane");
ta.setLineWrap(true);
JScrollPane scrPane = new JScrollPane(ta);
scrPane.setBorder(new TitledBorder("JScrollPane"));
// Add panels and labels to main panelFör att kunna placera ut panelerna i frame'n behöver vi komma åt containern, dvs den lediga ytan under den övre titelraden i fönstret. Denna kommer vi åt genom:
mp.add(np, BorderLayout.NORTH);
mp.add(bp, BorderLayout.SOUTH);
mp.add(new JLabel("East"), BorderLayout.EAST);
mp.add(new JLabel("West"), BorderLayout.WEST);
mp.add(scrPane, BorderLayout.CENTER);
frame.getContentPane().add(mp); // mp --> framens containerDe sista två raderna "packar" framen så allting får plats, och till sist visas våran frame. Detta är det sista vi gör i programmet, när allt är "färdigmöblerat".
//Display the window.
frame.pack();
frame.setVisible(true);
Hela programmet hittar du här.
Inga kommentarer:
Skicka en kommentar