mirror of
https://github.com/Brandon-Rozek/website.git
synced 2024-12-28 12:21:59 +00:00
110 lines
3.2 KiB
Markdown
110 lines
3.2 KiB
Markdown
|
# Lecture Notes for November 15th
|
||
|
|
||
|
Import the necessary libraries
|
||
|
|
||
|
```java
|
||
|
import java.awt.*;
|
||
|
import java.awt.event.*;
|
||
|
import javax.swing.*;
|
||
|
```
|
||
|
|
||
|
This time we'll be using the null layout. This will require you to set the x, and y positions of each of the elements on the screen
|
||
|
|
||
|
First we'll make a class called `GUILayout` which will extend `JPanel` and contain our layout and components
|
||
|
|
||
|
```java
|
||
|
import java.awt.*;
|
||
|
import java.awt.event.*;
|
||
|
import javax.swing.*;
|
||
|
|
||
|
public class GUILayout extends JPanel {
|
||
|
private JButton one, two;
|
||
|
private JTextField text;
|
||
|
private JTextArea area;
|
||
|
private int count; // Used to keep track of button pushes
|
||
|
private int number = 0;
|
||
|
|
||
|
GUILayout() {
|
||
|
// Set the layout to the null layout
|
||
|
setLayout(null);
|
||
|
// Tells the computer that you wish to have the size of your program to be 500x500
|
||
|
setPreferredSize(new Dimension(500, 500));
|
||
|
|
||
|
// Create the buttons
|
||
|
one = new JButton("Change color");
|
||
|
two = new JButton("Count Pushes");
|
||
|
|
||
|
// Set the x, y, width, height inside parenthesis
|
||
|
// This places the buttons on the specified locations on the screen
|
||
|
one.setBounds(10, 10, 100, 24);
|
||
|
two.setBounds(120, 10, 100, 24);
|
||
|
|
||
|
// Sets the color of the text of button 1 to blue
|
||
|
one.setForeground(Color.BLUE);
|
||
|
|
||
|
// Add the components to the screen
|
||
|
add(one);
|
||
|
add(two);
|
||
|
|
||
|
|
||
|
text = new JTextField("Today is Wednesday, a photographer is here.");
|
||
|
text.setBounds(10, 40 ,480, 24);
|
||
|
add(text);
|
||
|
|
||
|
area = new JTextArea(20, 20);
|
||
|
// Wrap the text area into the scroll pane
|
||
|
// This adds the scroll bars (vertical/horizontal)
|
||
|
JScrollPane sp = new JScrollPane(area);
|
||
|
sp.setBounds(10, 75, 490, 400);
|
||
|
add(sp);
|
||
|
|
||
|
// Bind the Listener class to the button one
|
||
|
one.addActionListener(new Listener());
|
||
|
|
||
|
// Bind it to two and text
|
||
|
two.addActionListener(new Listener());
|
||
|
text.addActionListener(new Listener());
|
||
|
|
||
|
}
|
||
|
|
||
|
// Create the class for the listener
|
||
|
private class Listener implements ActionListener {
|
||
|
// Define what you want to occur after an event
|
||
|
public void actionPerformed(ActionEvent event) {
|
||
|
if (event.getSource() == one) {
|
||
|
|
||
|
} else if (event.getSource() == two) {
|
||
|
count++;
|
||
|
// \n is needed to prevent scrolling
|
||
|
area.append("You pressed the button " + count + " times!");
|
||
|
} else if (event.getSource() == text) {
|
||
|
// Grab the number inside the text area and set it to the variable number
|
||
|
number = Integer.paseInt(text.getText());
|
||
|
number += 10;
|
||
|
// add "" to number so that it converts number to a String
|
||
|
text.setText(number + "");
|
||
|
// Convert the number to a String
|
||
|
String temp = Integer.toString(number);
|
||
|
area.setText(temp);
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
The main code is really short, you just need to extend `JFrame` and some short code seen last class to set it up.
|
||
|
|
||
|
```java
|
||
|
public class mainTester extends JFrame {
|
||
|
public static void main(String[] args) {
|
||
|
JFrame frame = new JFrame("Sample GUI"); // Sets the title to "Sample GUI"
|
||
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||
|
// Instantiate the GUILayout file you made before
|
||
|
frame.getContentPane().add(new GUILayout());
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|