[[:oktatas:programozás:java|< Java]]
====== Java SWT ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2011, 2022
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Az SWT =====
Java GUI létrehozására alkalmas komponens gyűjtemény. A Standard Widget Toolkit betűiből alkotott betűszó.
Az IBM fejlesztők nem voltak megelégedve a Sun által létrehozott GUI megoldásokkal, ezért sajátot hozottak
létre. Ez lett az SWT. Az SWT-t a Java nem tartalmazza, azt külön kell letölteni.
Az SWT-t ma az Eclipse csapat tartja karban. Letöltés után a használathoz mindössze egy .jar fájlt kell illesztenünk a saját kódunkhoz. Külön kell letölteni Windows, Linux vagy macOS számára. Linux esetén ügyeljünk arra, hogy háromféle processzorhoz tölthető le, így válasszuk a megfelelőt.
Webhely:
* https://www.eclipse.org/swt/ (2022)
===== Helló Világ =====
import org.eclipse.swt.widgets.*;
public class main
{
public static void main(String[] args)
{
Display megjelenito = new Display();
Shell parancssor = new Shell(megjelenito);
parancssor.setText("Helló Világ");
parancssor.open();
while(!parancssor.isDisposed())
{
if (!megjelenito.readAndDispatch())
{
megjelenito.sleep();
}
}
megjelenito.dispose();
}
}
Fordítás:
javac -cp /swtutvonal/swt.jar Program.java
javac -cp c:\swtutvonal\swt.jar Program.java
Futtatás (az ahol class aktuális fájl van):
java -cp /swtutvonal/swt.jar:. Program
java -cp c:\swtutvonal\swt.jar;. Program
===== Grafikus felület =====
import org.eclipse.swt.widgets.*;
class Program
{
public static void main(String args[])
{
Display megjelenito = new Display();
Shell felulet = new Shell(megjelenito);
felulet.setSize(300, 200);
felulet.setText("Dialogs");
felulet.open();
Label cimke = new Label(felulet, 0);
cimke.setText("Címke");
cimke.setBounds(20, 20, 50, 25);
while (!felulet.isDisposed())
{
if (!megjelenito.readAndDispatch())
megjelenito.sleep();
}
megjelenito.dispose();
}
}
===== Text widgets =====
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
class Program
{
public static void main(String[] argv)
{
Display megjelenito = new Display();
Shell felulet = new Shell(megjelenito);
felulet.setSize(800, 600);
felulet.setText("Elso");
Text text = new Text(felulet, SWT.SINGLE);
text.setBounds(100,100, 100,30);
text.setBackground(new Color(megjelenito, 200, 200, 200));
felulet.open();
while(!felulet.isDisposed())
{
if(!megjelenito.readAndDispatch())
megjelenito.sleep();
}
megjelenito.dispose();
}
}
===== Nyomógomb eseménykezeléssel =====
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.events.*;
class Program
{
public static void main(String[] argv)
{
Display megjelenito = new Display();
Shell felulet = new Shell(megjelenito);
felulet.setSize(800, 600);
felulet.setText("Elso");
Text text = new Text(felulet, SWT.SINGLE);
text.setBounds(100,100, 100,30);
text.setBackground(new Color(megjelenito, 200, 200, 200));
Button button = new Button(felulet, SWT.PUSH);
button.setBounds(100, 200, 100, 30);
button.setText("Nyomj meg");
button.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
System.out.println("Lenyomtak");
}
});
felulet.open();
while(!felulet.isDisposed()) {
if(!megjelenito.readAndDispatch())
megjelenito.sleep();
}
megjelenito.dispose();
}
}
===== Listadoboz Table osztállyal =====
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.*;
class Program01
{
public static void main(String args[])
{
Display megjelenito = new Display();
Shell felulet = new Shell(megjelenito);
felulet.setSize(800, 600);
felulet.setText("Dialogs");
Label cimke = new Label(felulet, 0);
cimke.setText("Címke");
cimke.setBounds(20, 20, 50, 25);
final Table table = new Table (felulet, SWT.VIRTUAL | SWT.BORDER);
table.setBounds(20, 50, 200, 200);
table.setItemCount (100);
table.addListener (SWT.SetData, new Listener ()
{
public void handleEvent (Event event)
{
TableItem item = (TableItem) event.item;
int index = table.indexOf (item);
item.setText ("Item " + index);
System.out.println (item.getText ());
}
});
felulet.open();
while (!felulet.isDisposed())
{
if (!megjelenito.readAndDispatch())
megjelenito.sleep();
}
megjelenito.dispose();
}
}
===== Külső linkek =====
* http://www.eclipse.org/swt/
* http://www.java2s.com/Tutorial/Java/0280__SWT/Catalog0280__SWT.htm
* http://www.vogella.de/articles/SWT/article.html
* http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/SWTButtonAction.htm
* http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/package-summary.html (API)
* http://www.mkyong.com/swt/swt-button-example/
* http://zetcode.com/tutorials/javaswttutorial/widgets/