![Page 1: “Swing” - Constructing GUIs JButton JTextField. Layout Managers CENTERWEST CENTER BORDERLAYOUT this.setLayout(new BorderLayout()); this.add(displayCanvas,](https://reader036.vdocuments.net/reader036/viewer/2022082501/5a4d1af27f8b9ab05997ed11/html5/thumbnails/1.jpg)
“Swing” - Constructing GUIs
JButton
JTextField
![Page 2: “Swing” - Constructing GUIs JButton JTextField. Layout Managers CENTERWEST CENTER BORDERLAYOUT this.setLayout(new BorderLayout()); this.add(displayCanvas,](https://reader036.vdocuments.net/reader036/viewer/2022082501/5a4d1af27f8b9ab05997ed11/html5/thumbnails/2.jpg)
Layout ManagersCENTERWEST
WEST CENTER
BORDERLAYOUT
this.setLayout(new BorderLayout()); this.add(displayCanvas, BorderLayout.CENTER); this.add(outerpanelLeft, BorderLayout.WEST);
JButtonJButton
JPanelJButto
nJButton
![Page 3: “Swing” - Constructing GUIs JButton JTextField. Layout Managers CENTERWEST CENTER BORDERLAYOUT this.setLayout(new BorderLayout()); this.add(displayCanvas,](https://reader036.vdocuments.net/reader036/viewer/2022082501/5a4d1af27f8b9ab05997ed11/html5/thumbnails/3.jpg)
BorderLayout
CENTERWEST
SOUTH
EAST
NORTH
![Page 4: “Swing” - Constructing GUIs JButton JTextField. Layout Managers CENTERWEST CENTER BORDERLAYOUT this.setLayout(new BorderLayout()); this.add(displayCanvas,](https://reader036.vdocuments.net/reader036/viewer/2022082501/5a4d1af27f8b9ab05997ed11/html5/thumbnails/4.jpg)
WestendersBOXLAYOUTJPanel (BoxLayout)
JButtonJButton
JPanelJButto
nJButton
JPanelJTextField
outerpanelLeft.setLayout(new BoxLayout(outerpanelLeft, BoxLayout.PAGE_AXIS));
outerpanelLeft.add(p1); outerpanelLeft.add(Box.createVerticalStrut(10)); outerpanelLeft.add(p2);
![Page 5: “Swing” - Constructing GUIs JButton JTextField. Layout Managers CENTERWEST CENTER BORDERLAYOUT this.setLayout(new BorderLayout()); this.add(displayCanvas,](https://reader036.vdocuments.net/reader036/viewer/2022082501/5a4d1af27f8b9ab05997ed11/html5/thumbnails/5.jpg)
Swing Components 1. JButton
public MovingGUI() {
…
JButton runBut = new JButton("Run");
JButton stopBut = new JButton("Stop");
JPanel buttonPanels = new JPanel();
buttonPanels.add(runBut);
buttonPanels.add(stopBut);
this.add(buttonPanels,BorderLayout.SOUTH);
…
}
![Page 6: “Swing” - Constructing GUIs JButton JTextField. Layout Managers CENTERWEST CENTER BORDERLAYOUT this.setLayout(new BorderLayout()); this.add(displayCanvas,](https://reader036.vdocuments.net/reader036/viewer/2022082501/5a4d1af27f8b9ab05997ed11/html5/thumbnails/6.jpg)
JButton Constructor
![Page 7: “Swing” - Constructing GUIs JButton JTextField. Layout Managers CENTERWEST CENTER BORDERLAYOUT this.setLayout(new BorderLayout()); this.add(displayCanvas,](https://reader036.vdocuments.net/reader036/viewer/2022082501/5a4d1af27f8b9ab05997ed11/html5/thumbnails/7.jpg)
Event Passing to JComponents
JButton
JPanel
Java Runtime
Operating SystemMouse Device
driver
mouse
JComponent
![Page 8: “Swing” - Constructing GUIs JButton JTextField. Layout Managers CENTERWEST CENTER BORDERLAYOUT this.setLayout(new BorderLayout()); this.add(displayCanvas,](https://reader036.vdocuments.net/reader036/viewer/2022082501/5a4d1af27f8b9ab05997ed11/html5/thumbnails/8.jpg)
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent event) {
int mods = event.getModifiers();
if( (mods & InputEvent.BUTTON1_MASK) != 0) { // Left mouse pressed
double x = (double)event.getX();
double y = (double)event.getY();
SimpleShape shape = new SimpleShape(x,y,50,100,0.2);
shapeList.add(shape);
}
if( (mods & InputEvent.BUTTON3_MASK) != 0) { // Right Mouse Pressed
}
}});
Action Listeners
![Page 9: “Swing” - Constructing GUIs JButton JTextField. Layout Managers CENTERWEST CENTER BORDERLAYOUT this.setLayout(new BorderLayout()); this.add(displayCanvas,](https://reader036.vdocuments.net/reader036/viewer/2022082501/5a4d1af27f8b9ab05997ed11/html5/thumbnails/9.jpg)
ArrayLists
shapeList.add(shape);
private ArrayList shapeList = new ArrayList();
Iterator it = shapeList.iterator();
while(it.hasNext()) { SimpleShape shape = (SimpleShape)it.next(); shape.draw(g); }
Called on Mouse Click
In paintComponent(g)
All In DrawCanvas classDrawCanvas attrib
![Page 10: “Swing” - Constructing GUIs JButton JTextField. Layout Managers CENTERWEST CENTER BORDERLAYOUT this.setLayout(new BorderLayout()); this.add(displayCanvas,](https://reader036.vdocuments.net/reader036/viewer/2022082501/5a4d1af27f8b9ab05997ed11/html5/thumbnails/10.jpg)
KleeLinesBase Klee2DLinesBase
KleeLinesLimit