java gui application example

java gui application example
//Imports are listed in full to show what's being used 
//could just import javax.swing.* and java.awt.* etc.. 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class GuiApp1 {
//Note: Typically the main method will be in a 
//separate class. As this is a simple one class 
//example it's all in the one class. 
	public static void main(String[] args) {
		new GuiApp1();
	}

	public GuiApp1() {
		JFrame guiFrame = new JFrame();

//make sure the program exits when the frame closes 
		guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		guiFrame.setTitle("Example GUI");
		guiFrame.setSize(300, 250);

//This will center the JFrame in the middle of the screen 
		guiFrame.setLocationRelativeTo(null);

//Options for the JComboBox 
		String[] fruitOptions = { "Apple", "Apricot", "Banana", "Cherry", "Date", "Kiwi", "Orange", "Pear",
				"Strawberry" };

//Options for the JList 
		String[] vegOptions = { "Asparagus", "Beans", "Broccoli", "Cabbage", "Carrot", "Celery", "Cucumber", "Leek",
				"Mushroom", "Pepper", "Radish", "Shallot", "Spinach", "Swede", "Turnip" };

//The first JPanel contains a JLabel and JCombobox 
		final JPanel comboPanel = new JPanel();
		JLabel comboLbl = new JLabel("Fruits:");
		JComboBox fruits = new JComboBox(fruitOptions);
		comboPanel.add(comboLbl);
		comboPanel.add(fruits);

//Create the second JPanel. Add a JLabel and JList and 
//make use the JPanel is not visible. 
		final JPanel listPanel = new JPanel();
		listPanel.setVisible(false);
		JLabel listLbl = new JLabel("Vegetables:");
		JList vegs = new JList(vegOptions);
		vegs.setLayoutOrientation(JList.HORIZONTAL_WRAP);
		listPanel.add(listLbl);
		listPanel.add(vegs);
		JButton vegFruitBut = new JButton("Fruit or Veg");

//The ActionListener class is used to handle the 
//event that happens when the user clicks the button. 
//As there is not a lot that needs to happen we can 
//define an anonymous inner class to make the code simpler. 
		vegFruitBut.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent event) {
//When the fruit of veg button is pressed 
//the setVisible value of the listPanel and 
//comboPanel is switched from true to 
//value or vice versa. 
				listPanel.setVisible(!listPanel.isVisible());
				comboPanel.setVisible(!comboPanel.isVisible());
			}
		});

//The JFrame uses the BorderLayout layout manager. 
//Put the two JPanels and JButton in different areas. 
		guiFrame.add(comboPanel, BorderLayout.NORTH);
		guiFrame.add(listPanel, BorderLayout.CENTER);
		guiFrame.add(vegFruitBut, BorderLayout.SOUTH);

//make sure the JFrame is visible guiFrame.setVisible(true);
	}
}
‮cruoS‬e:www.lautturi.com
Created Time:2017-09-18 23:27:58  Author:lautturi