[[: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/