Kod do wykładu 2
Slajdy z wykładu są uzupełniane przez przykłady wykorzystania omawianych funkcjonalności. Poniżej spis dostępnych przykładów.
Wykład 2 - GUI, Layout Managers
- Okno JFrame z jednym przyciskiem
package pw.java.wyk2; import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame; public class OknoZPrzyciskiem extends JFrame { public OknoZPrzyciskiem() { this.setSize(400,400); this.setDefaultCloseOperation(EXIT_ON_CLOSE); JButton b = new JButton("Przycisk"); add(b); } public static void main(String[] args) { OknoZPrzyciskiem okno = new OknoZPrzyciskiem(); okno.setVisible(true); } }
- Okno JFrame z panelem JPanel w którym znajduje się przycisk
package pw.java.wyk2; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class OknoiPanelZPrzyciskiem extends JFrame { public OknoiPanelZPrzyciskiem() { this.setSize(400,400); this.setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel panel = new JPanel(); add(panel); JButton b = new JButton("Przycisk"); panel.add(b); } public static void main(String[] args) { OknoiPanelZPrzyciskiem okno = new OknoiPanelZPrzyciskiem(); okno.setVisible(true); } }
- Kilka kontrolek (JButton, JLabel, JTextField) w okienku JFrame
package pw.java.wyk2; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class KilkaKontrolek extends JFrame { public KilkaKontrolek() { this.setSize(400,400); this.setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel panel = new JPanel(); add(panel); JButton b1 = new JButton("Przycisk 1"); JButton b2 = new JButton("Przycisk 1"); JButton b3 = new JButton("Przycisk 1"); JLabel l1 = new JLabel("Napis 1"); JLabel l2 = new JLabel("Napis 2"); JTextField tf1 = new JTextField("Pole tekstowe"); panel.add(b1); panel.add(b2); panel.add(b3); panel.add(l1); panel.add(l2); panel.add(tf1); } public static void main(String[] args) { KilkaKontrolek okno = new KilkaKontrolek(); okno.setVisible(true); } }
- Layout Quiz Example - kod generujący przykłady wykorzystane w quizie na wykładzie
package pw.java.wyk2; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class LayoutQuizDemo extends JFrame { public LayoutQuizDemo() { this.setSize(400,400); this.setDefaultCloseOperation(EXIT_ON_CLOSE); JButton b1 = new JButton("Przycisk 1"); JButton b2 = new JButton("Przycisk 2"); JButton b3 = new JButton("Przycisk 3"); JButton b4 = new JButton("Przycisk 4"); JButton b5 = new JButton("Przycisk 5"); JButton b6 = new JButton("Przycisk 6"); // QUIZ 1 *********************** /* add(b1,BorderLayout.PAGE_END); add(b2,BorderLayout.CENTER); */ // QUIZ 2 *********************** /* JPanel panel = new JPanel(); panel.add(b1); panel.add(b2); panel.add(b3); this.add(panel);// in the CENTER of the Frame //Alternatively, instead of using panel we could change the layout of the Frame directly: //this.setLayout(new FlowLayout()); */ // QUIZ 3 *********************** /* add(b1,BorderLayout.PAGE_START); add(b2,BorderLayout.LINE_START); add(b3, BorderLayout.LINE_END); */ // QUIZ 4 *********************** /* JPanel panel = new JPanel(new GridLayout(2,2)); panel.add(b1); panel.add(b2); panel.add(b3); this.add(panel); // in the CENTER of the Frame */ // QUIZ 5 *********************** JPanel panel = new JPanel(new GridLayout(3,1)); panel.add(b1); panel.add(b2); panel.add(b3); this.add(panel,BorderLayout.LINE_START); JPanel panel2 = new JPanel(); panel2.add(b4); panel2.add(b5); panel2.add(b6); this.add(panel2, BorderLayout.PAGE_START); } public static void main(String[] args) { LayoutQuizDemo quizdemo = new LayoutQuizDemo(); quizdemo.setVisible(true); } }
- Layout Manager Demo - przykład zastosowania trzech różnych Layout Managerów w jednym programie
package pw.java.wyk2; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.HeadlessException; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; public class LayoutManagerDemo extends JFrame { private static final long serialVersionUID = 185723979423401295L; public LayoutManagerDemo() throws HeadlessException { super(); setSize(600,200); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(new BorderLayout()); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); add(BorderLayout.WEST, p1); add(BorderLayout.NORTH, p2); add(BorderLayout.CENTER, p3); /* p1.setBackground(Color.GREEN); p2.setBackground(new Color(0,0,200)); p3.setBackground(new Color(250,255, 255));*/ p1.setLayout(new GridLayout(4,1)); p1.add(new JLabel("Panel 1")); p1.add(new JButton("Przycisk 1")); p1.add(new JButton("Przycisk 2")); p1.add(new JButton("Przycisk 3")); p2.setLayout(new FlowLayout()); p2.add(new JLabel("Panel 2")); p2.add(new JCheckBox("Kontrolka 1")); p2.add(new JCheckBox("Kontrolka 1")); p2.add(new JCheckBox("Kontrolka 1")); p3.setLayout(new BorderLayout()); p3.add(new JTextArea("Panel 3")); // setResizable(false); } public static void main(String[] args) { JFrame f = new LayoutManagerDemo(); f.setVisible(true); } }