SlideServe
Menu
Préférences
© SlideServe · v2026

Nyílt Fejlesztőrendszerek SWT haladó komponensek

melora avatar
97 diapositives · 1.1K Views · Oct 05, 2014

Nyílt Fejlesztőrendszerek SWT haladó komponensek. SWT eddig. Alapvetések natív Építőelemek Eseménykezelés Komponensek Ablak Gomb Text …. SWT haladó. Komplex komponensek *Bar Tree Table … Rajzolás Nyomtatás. SWT haladó. Komplex komponensek *Bar Tree Table … Rajzolás

Nyílt Fejlesztőrendszerek SWT haladó komponensek - slide 1
01 / 97Nyílt Fejlesztőrendszerek SWT haladó komponensek
1 / 17

Télécharger la présentation

Nyílt Fejlesztőrendszerek SWT haladó komponensek
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Nyílt FejlesztőrendszerekSWT haladó komponensek

  2. SWT eddig • Alapvetések • natív • Építőelemek • Eseménykezelés • Komponensek • Ablak • Gomb • Text • …

  3. SWT haladó • Komplex komponensek • *Bar • Tree • Table • … • Rajzolás • Nyomtatás

  4. SWT haladó • Komplex komponensek • *Bar • Tree • Table • … • Rajzolás • Nyomtatás

  5. Menu • Menü megjelenítése • new Menu(parent, SWT.BAR); • BAR – felső szintű menü • DROP_DOWN – almenü • POP_UP – helyi menü • Fontos: shell.setMenuBar(Menu) • Menü elemek: MenuItem • SWT.CASCADE – almenüje van • SWT.PUSH –”sima” elem • Egy item-nek is lehet menüje (almenü) • setMenu()

  6. Toolbar • new ToolBar(parent, SWT.HORIZONTAL) • Eszközkészlet megjelenítése • Stílusok • HORIZONTAL, VERTICAL • WRAP, FLAT, RIGHT • SHADOW_OUT • Események: nincs • Metódusok: getItems(), getItem(int)

  7. ToolItem • new ToolItem(toolbar,stílus) • Stílusok • PUSH, RADIO, DROP_DOWN, SEPARATOR,CHECK • Az API hasonlít a Button-éhoz • SEPARATOR esetén a szélesség (setWidth(int)) beállítható

  8. ToolItem • new ToolItem(toolbar,stílus) • Stílusok • PUSH, RADIO, DROP_DOWN, SEPARATOR,CHECK • Az API hasonlít a Button-éhoz • SEPARATOR esetén a szélesség (setWidth(int)) beállítható

  9. Toolbar példa – menü dropdown finalToolBartoolBar= newToolBar(shell, SWT.HORIZONTAL); finalToolItemitem = newToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); finalMenu menu = newMenu(shell, SWT.POP_UP); for(inti = 0; i < 8; i++) { newMenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(newSelectionAdapter() { publicvoidwidgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = newPoint(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}});

  10. Toolbar példa – menü dropdown finalToolBartoolBar= newToolBar(shell, SWT.HORIZONTAL); finalToolItemitem = newToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); finalMenu menu = newMenu(shell, SWT.POP_UP); for(inti = 0; i < 8; i++) { newMenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(newSelectionAdapter() { publicvoidwidgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = newPoint(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); ToolBar és ToolItem létrehozása

  11. Toolbar példa – menü dropdown finalToolBartoolBar= newToolBar(shell, SWT.HORIZONTAL); finalToolItemitem = newToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); finalMenu menu = newMenu(shell, SWT.POP_UP); for(inti = 0; i < 8; i++) { newMenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(newSelectionAdapter() { publicvoidwidgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = newPoint(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); Menü létrehozása

  12. Toolbar példa – menü dropdown finalToolBartoolBar= newToolBar(shell, SWT.HORIZONTAL); finalToolItemitem = newToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); finalMenu menu = newMenu(shell, SWT.POP_UP); for(inti = 0; i < 8; i++) { newMenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(newSelectionAdapter() { publicvoidwidgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = newPoint(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); Menü elemek létrehozása

  13. Toolbar példa – menü dropdown finalToolBartoolBar= newToolBar(shell, SWT.HORIZONTAL); finalToolItemitem = newToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); finalMenu menu = newMenu(shell, SWT.POP_UP); for(inti = 0; i < 8; i++) { newMenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(newSelectionAdapter() { publicvoidwidgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = newPoint(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); ToolItem esemény-kezelő írása

  14. Toolbar példa – menü dropdown finalToolBartoolBar= newToolBar(shell, SWT.HORIZONTAL); finalToolItemitem = newToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); finalMenu menu = newMenu(shell, SWT.POP_UP); for(inti = 0; i < 8; i++) { newMenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(newSelectionAdapter() { publicvoidwidgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = newPoint(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); SWT.ARROW jelzi, hogy a kinyitásra kattintottak

  15. Toolbar példa – menü dropdown finalToolBartoolBar= newToolBar(shell, SWT.HORIZONTAL); finalToolItemitem = newToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); finalMenu menu = newMenu(shell, SWT.POP_UP); for(inti = 0; i < 8; i++) { newMenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(newSelectionAdapter() { publicvoidwidgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = newPoint(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); Koordináták átszámítása képernyő-koordinátákká

  16. Toolbar példa – menü dropdown finalToolBartoolBar= newToolBar(shell, SWT.HORIZONTAL); finalToolItemitem = newToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); finalMenu menu = newMenu(shell, SWT.POP_UP); for(inti = 0; i < 8; i++) { newMenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(newSelectionAdapter() { publicvoidwidgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = newPoint(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); Menü megjelenítése

  17. CoolBar, CooITem • new CoolBar(parent.SWT.FLAT) • Eszköz-kontrolok elhelyezése • Átrendezhető, testre szabható • new CoolItem(coolBar,SWT.NONE) • Tartó a kontrol számára • Méretezhető (preferredSize, minimumSize) • Fontos: CoolItem.setControl() • CoolBar.setLocked()

  18. Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = newCoolItem(coolBar, SWT.NONE); Button butt = newButton(coolBar,SWT.PUSH); butt.setText("haliho"); item.setControl(butt); Point size = butt.computeSize(SWT.DEFAULT,SWT.DEFAULT); item.setPreferredSize(item.computeSize(size.x,size.y)); coolBar.setLocked(false);

  19. Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = newCoolItem(coolBar, SWT.NONE); Button butt = newButton(coolBar,SWT.PUSH); butt.setText("haliho"); item.setControl(butt); Point size = butt.computeSize(SWT.DEFAULT,SWT.DEFAULT); item.setPreferredSize(item.computeSize(size.x,size.y)); coolBar.setLocked(false); CoolBar létrehozása

  20. Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = newCoolItem(coolBar, SWT.NONE); Button butt = newButton(coolBar,SWT.PUSH); butt.setText("haliho"); item.setControl(butt); Point size = butt.computeSize(SWT.DEFAULT,SWT.DEFAULT); item.setPreferredSize(item.computeSize(size.x,size.y)); coolBar.setLocked(false); CoolItem létrehozása

  21. Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = newCoolItem(coolBar, SWT.NONE); Button butt = newButton(coolBar,SWT.PUSH); butt.setText("haliho"); item.setControl(butt); Point size = butt.computeSize(SWT.DEFAULT,SWT.DEFAULT); item.setPreferredSize(item.computeSize(size.x,size.y)); coolBar.setLocked(false); Gomb létrehozása, Hozzáadása az item-hez

  22. Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = newCoolItem(coolBar, SWT.NONE); Button butt = newButton(coolBar,SWT.PUSH); butt.setText("haliho"); item.setControl(butt); Point size = butt.computeSize(SWT.DEFAULT,SWT.DEFAULT); item.setPreferredSize(item.computeSize(size.x,size.y)); coolBar.setLocked(false); Méret beállítása

  23. Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = newCoolItem(coolBar, SWT.NONE); Button butt = newButton(coolBar,SWT.PUSH); butt.setText("haliho"); item.setControl(butt); Point size = butt.computeSize(SWT.DEFAULT,SWT.DEFAULT); item.setPreferredSize(item.computeSize(size.x,size.y)); coolBar.setLocked(false); Szerkeszthető marad a coolBar

  24. Tree • new Tree(parent.SWT.SINGLE) • Stílusok • SINGLE – egyszeres kijelölés • MULTI – többes kijelölés • CHECK – checkbox-os tree • Események • Selection – egy elemet kiválasztottak • defaultSelection – egy elemen Enter-t ütöttek • Collapse – bezártak egy részfát • Expand – kinyitottak egy részfát • Mindig van scrollbar!

  25. TreeItem • new TreeItem(parent, SWT.NONE) • Szülő • Tree – gyökérelem • TreeItem - gyerek • Lehet • Szöveg, ikon, checkbox • Az expand eseménnyel lehet lazy-load

  26. Tree & Item • Érdekes metódusok • showSelection() – megmutatja a kijelölt elemet • showItem(TreeItem) – megmutatja az itemet • setSelection(TreeItem[]) – getSelection() • selectAll() – deselectAll() • setTopItem() – a legfelső láthatóvá teszi az elemet, ha lehet • getTopItem() – visszaadja a legfelső elemet

  27. Table • Egyszerű táblázat • new Table(parent, SWT.SINGLE) • Stílusok • SINGLE – egy kijelölés • MULTI – több kijelölés • CHECK – check boxok • FULL_SELECTION – teljes sort lehet kijelölni • HIDE_SELECTION – ha nincs fókusz nem mutatja a kijelölést

  28. Table • Metódusok • setHeaderVisible(boolean) • setLinesVisible(boolean) • getHeaderHeight(), getItemHeight() • indexOf(TableColumn), indexOf(TableItem) • getColumn(int), getItem(int) • setTopIndex(int) • isSelected(int), setSelection(int[]), setSelection(TableItem[])

  29. TableColumn Item • new TableColumn(table,SWT.LEFT) • Lehet szövege, képe, igazítás • Állítható szélesség • Move, Resize, Selection események • new TableItem(table,SWT.NONE) • Szöveg, kép, checkbox lehet

  30. Table példa Table table = newTable(shell, SWT.BORDER); table.setHeaderVisible(true); for(inti = 0; i < 4; i++) { TableColumncolumn = newTableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(inti = 0; i < 5; i++) { TableItemitem = newTableItem(table, SWT.NULL); for(intj = 0; j < 4; j++) { item.setText(j, "Item "+ i + "-"+ j);}} for(inti = 0; i < 4; i++){table.getColumn(i).pack();} table.pack();

  31. Table példa Table table = newTable(shell, SWT.BORDER); table.setHeaderVisible(true); for(inti = 0; i < 4; i++) { TableColumncolumn = newTableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(inti = 0; i < 5; i++) { TableItemitem = newTableItem(table, SWT.NULL); for(intj = 0; j < 4; j++) { item.setText(j, "Item "+ i + "-"+ j);}} for(inti = 0; i < 4; i++){table.getColumn(i).pack();} table.pack(); Új tábla

  32. Table példa Table table = newTable(shell, SWT.BORDER); table.setHeaderVisible(true); for(inti = 0; i < 4; i++) { TableColumncolumn = newTableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(inti = 0; i < 5; i++) { TableItemitem = newTableItem(table, SWT.NULL); for(intj = 0; j < 4; j++) { item.setText(j, "Item "+ i + "-"+ j);}} for(inti = 0; i < 4; i++){table.getColumn(i).pack();} table.pack(); 4 oszlop létrehozása

  33. Table példa Table table = newTable(shell, SWT.BORDER); table.setHeaderVisible(true); for(inti = 0; i < 4; i++) { TableColumncolumn = newTableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(inti = 0; i < 5; i++) { TableItemitem = newTableItem(table, SWT.NULL); for(intj = 0; j < 4; j++) { item.setText(j, "Item "+ i + "-"+ j);}} for(inti = 0; i < 4; i++){table.getColumn(i).pack();} table.pack(); 5 item (sor) létrehozása

  34. Table példa Table table = newTable(shell, SWT.BORDER); table.setHeaderVisible(true); for(inti = 0; i < 4; i++) { TableColumncolumn = newTableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(inti = 0; i < 5; i++) { TableItemitem = newTableItem(table, SWT.NULL); for(intj = 0; j < 4; j++) { item.setText(j, "Item "+ i + "-"+ j);}} for(inti = 0; i < 4; i++){table.getColumn(i).pack();} table.pack(); Minden sorban minden oszlop értékének beállítása

  35. Table példa Table table = newTable(shell, SWT.BORDER); table.setHeaderVisible(true); for(inti = 0; i < 4; i++) { TableColumncolumn = newTableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(inti = 0; i < 5; i++) { TableItemitem = newTableItem(table, SWT.NULL); for(intj = 0; j < 4; j++) { item.setText(j, "Item "+ i + "-"+ j);}} for(inti = 0; i < 4; i++){table.getColumn(i).pack();} table.pack(); „csomagolás”

  36. Browser • new Browser(parent, SWT.NONE) • Az operációs rendszer böngészőjét használja • Események: Show, Hide, Open, Close, (URL)Changed, … • Metódusok • setURL(String) • setText(String) • back(), forward(), stop()

  37. TabFolder • new TabFolder(parent, SWT.TOP) • „Lapozós dialógusablak” • Stílusok • TOP – fülek felül • BOTTOM – fülek alul • Esemény: selection – egy elem kiválasztva

  38. TabItem • new TabItem(folder, SWT.NONE) • Egy lapot jelképez • Metódusok • setText() - fül felirat • setImage() – fül kép • setToolTipText() – tool tipp • setControl() – a kontroll, mely az item területét elfoglalja

  39. Widget-ek – ami kimarad • Combo • Group • List • ProgressBar • ScrollBar • Scale, Slider, Spinner, • TableTree – tábla az első oszlopban tree • …

  40. Widget-ek – ami kimarad • Combo • Group • List • ProgressBar • ScrollBar • Scale, Slider, Spinner, • TableTree – tábla az első oszlopban tree • …

  41. Dialógusok • Fajtái • MessageBox- üzenetek • ColorDialog – szín-kiválasztás • DirectoryDialog - könyvtárfa • FileDialog – fájl kiválasztás, mentés • FontDialog – betűtípus-választás • PrintDialog – nyomtatás • Az operációs rendszer beépített dialógusait használja

  42. Dialógusok • Metódusok • setText() – címsor beállítása • open() – megnyitás, dialóg-specifikus visszatérési érték • Stílusok • PRIMARY_MODAL, APPLICATION_MODAL, SYSTEM_MODAL • Nem Widget alosztályok!

  43. MessageBox • Metódusok • setMessage() – Üzenet szöveg • Stílusok • ICON_ERROR, ICON_INFORMATION, ICON_QUESTION, ICON_WARNING, ICON_WORKING • OK, OK | CANCEL • YES | NO, YES | NO | CANCEL • RETRY | CANCEL, ABORT | RETRY | IGNORE • open() a lenyomott gombbal tér vissza (pl. OK)

  44. FileDialog • Metódusok • setFileName(String) • setFileExtensions(String[]) • setFilterNames(String[]) • setFilterPath(String) • Stílusok • OPEN, SAVE, MULTI • open() – fájlnév (String) • Multi esetén: getFileNames()

  45. Grafika • Ha saját widget kell… • Ha rajzolni szeretnénk • Grafika • alapok • eseménykezelés • nyomtatás

  46. Koordináta-rendszer • Origó a bal felső sarok (0,0) • Minden távolság pixelben adott • Jobbra és lefelé növekszik • Jobbról-balra típusú locale esetén az x koordináta-tengely megfordulhat! • A koordináta-rendszer általában control-relatív, azaz a kontrollon belül érvényes

  47. Point és Rectangle • Point – x,y koordináta-pár • Nincs OS erőforrás • Rectangle – téglalap (koordináta-négyes) • Nincs OS erőforrás • API: contains(Point) intersects(Rectangle), union(Rectangle), intersection(Rectangle)

  48. GraphicsContext - GC • Interfész a platform grafikus rendszeréhez • Tartalmazza az aktuális rajzolási környezetet (Színek, stílusok, …) • Rajzolási környezetek • Control – általában egy kontrollra rajzolunk • Device – rajzolás egy eszközre (pl. Printer) • Image – rajzolás egy képre, az eredmény például kimenthető fájlba

  49. Szálkezelés • Nem muszáj az UI szálból rajzolni, de érdemes: • Jósolható: tudjuk, hogy senki sem nyúl a felülethez, amíg rajzolunk • Könnyen programozható: az UI-hoz való hozzáférés nem igényel szálak közötti hívásokat • Biztonságos: néhány operációs rendszer rosszul viseli a háttér-rajzolószálakat

  50. Rajzolás - vonalak • drawLine(int,int,int,int) – egyszerű vonal • drawPolyLine(int[] xyArray) – pont pár – sorozattal törtvonal rajzolása • drawPolygon(int[] xyArray) – mint az előző, de a végén lezárja (utolsó párból az elsőig)