[[:oktatas:programozás:java|< Java]]
====== Java GUI AWT ======
* **Szerző:** Sallai András
* Copyright (c) 2011, Sallai András
* Szerkesztve: 2011, 2012
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Bevezetés =====
Abstract Window Toolkit (AWT)
Ennek a fejezetnek a megvalósításához feltételezem a Java alapismereteket és a Java objektumorientált programozási ismereteket.
Jelenleg fejlesztés alatt van, ajánlott a "Java GUI Swing" használata. Mi a különbség az AWT és a Swing között?
Az AWT rendszerben készül programok minden operációs rendszeren másként nézne ki, mivel a komponensek kinézete a
az operációs rendszer ablakozó felületéhez igazodik.
===== Első program =====
import java.awt.*;
class Program extends Frame
{
Program()
{
setSize(400, 300);
setVisible(true);
}
public static void main(String args[])
{
new Program();
}
}
===== Ablakbezárás kezelése =====
Figyeljük meg, hogy az előző ablakunk valójában nem záródik be.
Rá kell vennünk az ablakot, hogy figyelje a Close eseményt és
lépjen ki erre.
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class Program extends Frame
{
Program()
{
addWindowListener(new AblakKezeles());
setSize(400, 300);
setVisible(true);
}
class AblakKezeles extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)
{
new Program();
}
}
===== Ablakesemények interfésszel =====
import java.awt.Frame;
import java.awt.Button;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
class Program01 extends Frame
{
Button button1 = new Button("Klikk");
Program01()
{
addWindowListener(new WindowListener()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
public void windowDeactivated(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowOpened(WindowEvent e){}
});
add(button1);
pack();
setVisible(true);
}
public static void main(String args[])
{
new Program01();
}
}
===== Nyomógomb elhelyezése =====
import java.awt.Frame;
import java.awt.Button;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class Program extends Frame
{
Button gomb;
Program()
{
gomb = new Button("Klikkelj ide");
add(gomb);
addWindowListener(new AblakKezeles());
setSize(400, 300);
setVisible(true);
}
class AblakKezeles extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)
{
new Program();
}
}
Ebben a formában kitölti az egész képernyőt.
Most alkalmazzuk a pack() metódust az ablakon, így az ablak
igazodik annak tartalmához, vagyis felveszi a nyomógomb méretét.
import java.awt.Frame;
import java.awt.Button;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class Program extends Frame
{
Button gomb;
Program()
{
gomb = new Button("Klikkelj ide");
add(gomb);
addWindowListener(new AblakKezeles());
//~ setSize(400, 300);
pack();
setVisible(true);
}
class AblakKezeles extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)
{
new Program();
}
}
Vegyük észre, hogy megjegyzésbe tettem a setSize(400,300);-as utasítást,
mivel a pack() metódus mellett nincs értelme.
===== Eseménykezelő =====
==== Ablakesemény ====
import java.awt.Frame;
import java.awt.Button;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class Program extends Frame
{
Button gomb;
Program()
{
gomb = new Button("Klikkelj ide erre a gombra");
gomb.addActionListener(new Gomb_Click());
add(gomb);
addWindowListener(new AblakKezeles());
//~ setSize(400, 300);
pack();
setVisible(true);
}
class Gomb_Click implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
setTitle("Lenyomva");
}
}
class AblakKezeles extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)
{
new Program();
}
}
==== Ablakesemény interfésszel ====
import java.awt.Frame;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
class Program extends Frame implements WindowListener
{
Program()
{
addWindowListener(this);
setSize(400, 300);
setVisible(true);
}
public void windowDeactivated(WindowEvent e)
{
}
public void windowActivated(WindowEvent e)
{
}
public void windowDeiconified(WindowEvent e)
{
}
public void windowIconified(WindowEvent e)
{
}
public void windowClosed(WindowEvent e)
{
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
public void windowOpened(WindowEvent e)
{
}
public static void main(String args[])
{
new Program();
}
}
===== Elrendezéskezelő nélkül =====
import java.awt.Frame;
import java.awt.Button;
import java.awt.Label;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.FlowLayout;
class Program extends Frame
{
Button gomb;
Label cimke;
Program()
{
gomb = new Button("Klikkelj ide erre a gombra");
cimke = new Label("Több komponensű program");
gomb.addActionListener(new Gomb_Click());
gomb.setBounds(10, 50, 150, 30);
cimke.setBounds(10, 100, 180, 30);
add(gomb);
add(cimke);
setLayout(null);
addWindowListener(new AblakKezeles());
setSize(400, 300);
setVisible(true);
}
class Gomb_Click implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
setTitle("Lenyomva");
}
}
class AblakKezeles extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)
{
new Program();
}
}
===== Több komponens =====
import java.awt.Frame;
import java.awt.Button;
import java.awt.Label;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.FlowLayout;
class Program extends Frame
{
Button gomb;
Label cimke;
Program()
{
gomb = new Button("Klikkelj ide erre a gombra");
cimke = new Label("Több komponensű program");
gomb.addActionListener(new Gomb_Click());
add(gomb);
add(cimke);
setLayout(new FlowLayout());
addWindowListener(new AblakKezeles());
pack();
setVisible(true);
}
class Gomb_Click implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
setTitle("Lenyomva");
}
}
class AblakKezeles extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)
{
new Program();
}
}
===== Billentyűzetfigyelés =====
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
class Program extends Frame
{
Program()
{
addKeyListener(new BillentyuKezeles());
addWindowListener(new AblakKezeles());
setSize(400, 300);
setVisible(true);
}
class BillentyuKezeles implements KeyListener
{
public void keyPressed(KeyEvent e)
{
switch(e.getKeyCode())
{
case KeyEvent.VK_A : setTitle("a"); break;
case KeyEvent.VK_B : setTitle("b"); break;
case KeyEvent.VK_C : setTitle("c"); break;
case KeyEvent.VK_1 : setTitle("1"); break;
case KeyEvent.VK_2 : setTitle("2"); break;
}
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
}
}
class AblakKezeles extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)
{
new Program();
}
}
===== Eseménykezelés belső osztály nélkül =====
import java.awt.Frame;
import java.awt.Button;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class Program extends Frame implements ActionListener
{
Button gomb;
Program()
{
gomb = new Button("Nyomj meg");
gomb.setBounds(50, 50, 100, 30);
gomb.addActionListener(this);
add(gomb);
setLayout(null);
setSize(400, 300);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
setTitle("Esemény volt");
}
public static void main(String args[])
{
new Program();
}
}
Több komponens
import java.awt.Frame;
import java.awt.Button;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class Program extends Frame implements ActionListener
{
Button gomb1;
Button gomb2;
Program()
{
gomb1 = new Button("Nyomj meg");
gomb2 = new Button("Vagy nyomd ezt");
gomb1.setBounds(50, 50, 100, 30);
gomb2.setBounds(50, 90, 100, 30);
gomb1.addActionListener(this);
gomb2.addActionListener(this);
add(gomb1);
add(gomb2);
setLayout(null);
setSize(400, 300);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == gomb1)
setTitle("Első gomblt");
if(e.getSource() == gomb2)
setTitle("Második gombon");
}
public static void main(String args[])
{
new Program();
}
}
===== TabPanel =====
TabPanel egyszerűen:
import java.awt.*;
import javax.swing.JTabbedPane;
class tabpanel extends Frame
{
tabpanel(String cim)
{
super(cim);
JTabbedPane tabbedPane;
tabbedPane = new JTabbedPane(JTabbedPane.TOP);
tabbedPane.addTab("Első", new Label("Felirat 1 "));
tabbedPane.addTab("Második", new Label("Felirat 2 "));
add(tabbedPane);
}
public static void main(String args[])
{
tabpanel ablak = new tabpanel("tabpanel");
ablak.pack();
ablak.setVisible(true);
}
}
===== Ablakállapotok =====
import java.awt.*;
class Program extends Frame
{
Program() throws Exception
{
setSize(400, 300);
setVisible(true);
// Sleep for 3 seconds, then minimize
Thread.sleep (3000);
setState ( Frame.ICONIFIED );
// Sleep for 3 seconds, then restore
Thread.sleep (3000);
setState ( Frame.NORMAL );
// Sleep for 3 seconds, then kill window
Thread.sleep (3000);
setVisible (false);
dispose();
// Terminate test
System.exit(0);
}
public static void main(String args[]) throws Exception
{
new Program();
}
}
===== Komponensek =====
* Component
* Button
* Label
* Choice
* TextComponenet
* TextField
* TextArea
* Checkbox
* List
* Scrollbar
* Container
* Panel-Applet
* ScrollPane
* Window
* Dialog
* Frame
* Canvas
===== Egér mozgatása =====
import java.awt.Robot;
import java.awt.AWTException;
class Program01
{
public static void main(String[] args)
{
try
{
Robot r = new Robot();
r.mouseMove(40,40);
}
catch(AWTException e) {}
}
}