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);
	}

}