Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek SWT haladó komponensek.

Hasonló előadás


Az előadások a következő témára: "Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek SWT haladó komponensek."— Előadás másolata:

1 Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek SWT haladó komponensek

2 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 2 SWT eddig  Alapvetések −natív −Építőelemek −Eseménykezelés  Komponensek −Ablak −Gomb −Text −…

3 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 3 SWT haladó  Komplex komponensek −*Bar −Tree −Table −…  Rajzolás  Nyomtatás

4 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 4 SWT haladó  Komplex komponensek −*Bar −Tree −Table −…  Rajzolás  Nyomtatás

5 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 9 Toolbar példa – menü dropdown final ToolBar toolBar= new ToolBar(shell, SWT.HORIZONTAL); final ToolItem item = new ToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); final Menu menu = new Menu(shell, SWT.POP_UP); for(int i = 0; i < 8; i++) { new MenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = new Point(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}});

10 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 10 Toolbar példa – menü dropdown final ToolBar toolBar= new ToolBar(shell, SWT.HORIZONTAL); final ToolItem item = new ToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); final Menu menu = new Menu(shell, SWT.POP_UP); for(int i = 0; i < 8; i++) { new MenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = new Point(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); ToolBar és ToolItem létrehozása

11 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 11 Toolbar példa – menü dropdown final ToolBar toolBar= new ToolBar(shell, SWT.HORIZONTAL); final ToolItem item = new ToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); final Menu menu = new Menu(shell, SWT.POP_UP); for(int i = 0; i < 8; i++) { new MenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = new Point(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); Menü létrehozása

12 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 12 Toolbar példa – menü dropdown final ToolBar toolBar= new ToolBar(shell, SWT.HORIZONTAL); final ToolItem item = new ToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); final Menu menu = new Menu(shell, SWT.POP_UP); for(int i = 0; i < 8; i++) { new MenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = new Point(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); Menü elemek létrehozása

13 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 13 Toolbar példa – menü dropdown final ToolBar toolBar= new ToolBar(shell, SWT.HORIZONTAL); final ToolItem item = new ToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); final Menu menu = new Menu(shell, SWT.POP_UP); for(int i = 0; i < 8; i++) { new MenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = new Point(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); ToolItem esemény- kezelő írása

14 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 14 Toolbar példa – menü dropdown final ToolBar toolBar= new ToolBar(shell, SWT.HORIZONTAL); final ToolItem item = new ToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); final Menu menu = new Menu(shell, SWT.POP_UP); for(int i = 0; i < 8; i++) { new MenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = new Point(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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 15 Toolbar példa – menü dropdown final ToolBar toolBar= new ToolBar(shell, SWT.HORIZONTAL); final ToolItem item = new ToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); final Menu menu = new Menu(shell, SWT.POP_UP); for(int i = 0; i < 8; i++) { new MenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = new Point(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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 16 Toolbar példa – menü dropdown final ToolBar toolBar= new ToolBar(shell, SWT.HORIZONTAL); final ToolItem item = new ToolItem(toolBar, SWT.DROP_DOWN); item.setImage(createToolIcon(display, "run")); final Menu menu = new Menu(shell, SWT.POP_UP); for(int i = 0; i < 8; i++) { new MenuItem(menu, SWT.PUSH).setText("Item"+ i);} item.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEventevent) { if(event.detail == SWT.ARROW) { Point point = new Point(event.x, event.y); point = display.map(toolBar, null, point); menu.setLocation(point); menu.setVisible(true); }}}); Menü megjelenítése

17 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 18 Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = new CoolItem(coolBar, SWT.NONE); Button butt = new Button(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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 19 Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = new CoolItem(coolBar, SWT.NONE); Button butt = new Button(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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 20 Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = new CoolItem(coolBar, SWT.NONE); Button butt = new Button(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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 21 Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = new CoolItem(coolBar, SWT.NONE); Button butt = new Button(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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 22 Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = new CoolItem(coolBar, SWT.NONE); Button butt = new Button(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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 23 Coolbar példa – nyomógomb final CoolBar coolBar= new CoolBar(window, SWT.BORDER); final CoolItem item = new CoolItem(coolBar, SWT.NONE); Button butt = new Button(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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 30 Table példa Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true); for(int i = 0; i < 4; i++) { TableColumn column = new TableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(int i = 0; i < 5; i++) { TableItem item = new TableItem(table, SWT.NULL); for(int j = 0; j < 4; j++) { item.setText(j, "Item "+ i + "-"+ j);}} for(inti = 0; i < 4; i++){ table.getColumn(i).pack();} table.pack();

31 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 31 Table példa Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true); for(int i = 0; i < 4; i++) { TableColumn column = new TableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(int i = 0; i < 5; i++) { TableItem item = new TableItem(table, SWT.NULL); for(int j = 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 32 Table példa Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true); for(int i = 0; i < 4; i++) { TableColumn column = new TableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(int i = 0; i < 5; i++) { TableItem item = new TableItem(table, SWT.NULL); for(int j = 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 33 Table példa Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true); for(int i = 0; i < 4; i++) { TableColumn column = new TableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(int i = 0; i < 5; i++) { TableItem item = new TableItem(table, SWT.NULL); for(int j = 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 34 Table példa Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true); for(int i = 0; i < 4; i++) { TableColumn column = new TableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(int i = 0; i < 5; i++) { TableItem item = new TableItem(table, SWT.NULL); for(int j = 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 35 Table példa Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true); for(int i = 0; i < 4; i++) { TableColumn column = new TableColumn(table,SWT.NONE); column.setText("Column"+ i);} for(int i = 0; i < 5; i++) { TableItem item = new TableItem(table, SWT.NULL); for(int j = 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 39 Widget-ek – ami kimarad  Combo  Group  List  ProgressBar  ScrollBar  Scale, Slider, Spinner,  TableTree – tábla az első oszlopban tree  …

40 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 40 Widget-ek – ami kimarad  Combo  Group  List  ProgressBar  ScrollBar  Scale, Slider, Spinner,  TableTree – tábla az első oszlopban tree  …

41 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 45 Grafika  Ha saját widget kell…  Ha rajzolni szeretnénk  Grafika −alapok −eseménykezelés −nyomtatás

46 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 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)

51 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 51 Rajzolás - alakzatok  drawRectangle(int,int,int,int) – téglalap  drawRoundRectangle(int,int,int,int,int,int) – Lekerekített téglalap  drawOval(int,int,int,int) – ellipszis  drawArc(int,int,int,int,int,int) – ellipszis- szelet −Szögek: fokban, a 0 jobb-vízszintes, óramutató járásával ellenkezően növekszik  Kitöltött alakzatok: draw helyett fill

52 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 52 Színek  RGB osztály −A szokásos számhármas  Color osztály −Egy RGB és egy Device alapján számol színt −Specifikus színleképzést valósít meg (OS)  SystemColor −OS szinten specifikált színek (pl. BLACK) −Display.getSystemColor(int) hívással megkapható

53 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 53 Region  Egy, több síidom által alkotott terület  Region(Device)  Metódusok: −add(Rectangle) - hozzáadás −add(Region) −add(int[]) - poligon −subtract(Rectangle) - kivonás −subtract(Region) −subtract(int[]) - poligon −getBounds() – határok (befoglaló téglalap) −contains(x,y) – tartalmazza-e a pontot −intersects(Rectangle) – van-e közös rész?  OS erőforrásokat fog!

54 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 54 Region - felhasználás final Region region = new Region(display); region.add(new int[]{0, 0, 200, 0, 200, 200}); region.subtract(new Rectangle(75, 75, 50, 50)); region.add(newint[]{25, 125, 75, 125, 75, 175}); shell.addListener(SWT.Paint, newListener() { public void handleEvent(Event event) { GC gc= event.gc; gc.setClipping(region); Rectangle rect= shell.getClientArea(); gc.setBackground(display.getSystemColor( SWT.COLOR_CYAN)); gc.fillRectangle(0,0,rect.width,rect.height); }}); shell.setSize(shell.computeSize(200, 200));

55 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 55 Region - felhasználás final Region region = new Region(display); region.add(new int[]{0, 0, 200, 0, 200, 200}); region.subtract(new Rectangle(75, 75, 50, 50)); region.add(newint[]{25, 125, 75, 125, 75, 175}); shell.addListener(SWT.Paint, newListener() { public void handleEvent(Event event) { GC gc= event.gc; gc.setClipping(region); Rectangle rect= shell.getClientArea(); gc.setBackground(display.getSystemColor( SWT.COLOR_CYAN)); gc.fillRectangle(0,0,rect.width,rect.height); }}); shell.setSize(shell.computeSize(200, 200)); Új régió a képernyőn

56 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 56 Region - felhasználás final Region region = new Region(display); region.add(new int[]{0, 0, 200, 0, 200, 200}); region.subtract(new Rectangle(75, 75, 50, 50)); region.add(newint[]{25, 125, 75, 125, 75, 175}); shell.addListener(SWT.Paint, newListener() { public void handleEvent(Event event) { GC gc= event.gc; gc.setClipping(region); Rectangle rect= shell.getClientArea(); gc.setBackground(display.getSystemColor( SWT.COLOR_CYAN)); gc.fillRectangle(0,0,rect.width,rect.height); }}); shell.setSize(shell.computeSize(200, 200)); Egy háromszög hozzáadása

57 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 57 Region - felhasználás final Region region = new Region(display); region.add(new int[]{0, 0, 200, 0, 200, 200}); region.subtract(new Rectangle(75, 75, 50, 50)); region.add(newint[]{25, 125, 75, 125, 75, 175}); shell.addListener(SWT.Paint, newListener() { public void handleEvent(Event event) { GC gc= event.gc; gc.setClipping(region); Rectangle rect= shell.getClientArea(); gc.setBackground(display.getSystemColor( SWT.COLOR_CYAN)); gc.fillRectangle(0,0,rect.width,rect.height); }}); shell.setSize(shell.computeSize(200, 200)); Egy téglalap kivonása

58 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 58 Region - felhasználás final Region region = new Region(display); region.add(new int[]{0, 0, 200, 0, 200, 200}); region.subtract(new Rectangle(75, 75, 50, 50)); region.add(new int[]{25, 125, 75, 125, 75, 175}); shell.addListener(SWT.Paint, newListener() { public void handleEvent(Event event) { GC gc= event.gc; gc.setClipping(region); Rectangle rect= shell.getClientArea(); gc.setBackground(display.getSystemColor( SWT.COLOR_CYAN)); gc.fillRectangle(0,0,rect.width,rect.height); }}); shell.setSize(shell.computeSize(200, 200)); Egy háromszög hozzáadása

59 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 59 Region - felhasználás final Region region = new Region(display); region.add(new int[]{0, 0, 200, 0, 200, 200}); region.subtract(new Rectangle(75, 75, 50, 50)); region.add(new int[]{25, 125, 75, 125, 75, 175}); shell.addListener(SWT.Paint, newListener() { public void handleEvent(Event event) { GC gc= event.gc; gc.setClipping(region); Rectangle rect= shell.getClientArea(); gc.setBackground(display.getSystemColor( SWT.COLOR_CYAN)); gc.fillRectangle(0,0,rect.width,rect.height); }}); shell.setSize(shell.computeSize(200, 200)); Paint esemény esetén rajzolnunk kell

60 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 60 Region - felhasználás final Region region = new Region(display); region.add(new int[]{0, 0, 200, 0, 200, 200}); region.subtract(new Rectangle(75, 75, 50, 50)); region.add(new int[]{25, 125, 75, 125, 75, 175}); shell.addListener(SWT.Paint, newListener() { public void handleEvent(Event event) { GC gc= event.gc; gc.setClipping(region); Rectangle rect= shell.getClientArea(); gc.setBackground(display.getSystemColor( SWT.COLOR_CYAN)); gc.fillRectangle(0,0,rect.width,rect.height); }}); shell.setSize(shell.computeSize(200, 200)); Beállítjuk a régiót clipping- nek

61 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 61 Region - felhasználás final Region region = new Region(display); region.add(new int[]{0, 0, 200, 0, 200, 200}); region.subtract(new Rectangle(75, 75, 50, 50)); region.add(new int[]{25, 125, 75, 125, 75, 175}); shell.addListener(SWT.Paint, newListener() { public void handleEvent(Event event) { GC gc= event.gc; gc.setClipping(region); Rectangle rect= shell.getClientArea(); gc.setBackground(display.getSystemColor( SWT.COLOR_CYAN)); gc.fillRectangle(0,0,rect.width,rect.height); }}); shell.setSize(shell.computeSize(200, 200)); Beállítjuk a kitöltőszínt

62 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 62 Region - felhasználás final Region region = new Region(display); region.add(new int[]{0, 0, 200, 0, 200, 200}); region.subtract(new Rectangle(75, 75, 50, 50)); region.add(new int[]{25, 125, 75, 125, 75, 175}); shell.addListener(SWT.Paint, newListener() { public void handleEvent(Event event) { GC gc= event.gc; gc.setClipping(region); Rectangle rect= shell.getClientArea(); gc.setBackground(display.getSystemColor( SWT.COLOR_CYAN)); gc.fillRectangle(0,0,rect.width,rect.height); }}); shell.setSize(shell.computeSize(200, 200)); Festünk

63 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 63 Region - eredmény

64 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 64 Region - példa  GC – clipping −Vágási terület, a rajzolás ezen hatásos  getClipping()  setClipping(Region)  setClipping(int, int, int, int)  setClipping(Rectangle)  setClipping(Region)

65 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 65 FontData  FontData(String name, int size, int style) −Name: a font neve −Size: méret pont (1/72”)-ben −Style: NORMAL, ITALIC, BOLD, (BOLD | ITALIC)  Megkapható: −FontDialog −Device.getFontList(String name, boolean scalable) ●Skálázható font: bármely méretben használható ●Bitmap font: csak az előre definiált méretekben

66 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 66 Font  Font (Device, FontData) −Adott eszközhöz kötött font −OS erőforrásokhoz kötődik!  GC-ben: −setFont(Font) −getFont() −getSystemFont() – alapértelmezett

67 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 67 Szöveg rajzolás  drawString(String,int,int,boolean) −Kiírja a szöveget az adott koordinátáktól kezdődően −A boolean paraméter azt adja meg, hogy átlátszó-e a háttér ●Ha nem, akkor a szöveg körüli téglalapot kitölti a háttérszínnel

68 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 68 Szöveg rajzolás  drawString(String,int,int,int style) −Kiírja a szöveget az adott koordinátáktól kezdődően −Style paraméter ●SWT.DRAW_DELIMITER – a sortörés karakterek hatására új sort kezd ●SWT.DRAW_TAB - a tabulátor karaktereket értelmezi ●SWT.DRAW_MNEMONIC – az & után aláhúzott betűk (gyorsbillentyű) ●SWT.DRAW_TRANSPARENT – átlátszó háttér

69 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 69 FontMetrics  Szöveg méreteinek meghatározása −Szöveg elrendezés, tördelés  Miért nem Font.getHeight() ? −Nem pixel, hanem pont −Néhány platform hazudik  Helyette: gc.getFontMetrics() −getHeight() – magasság (pixel) −getAscent() – betűmagasság −getDescend() – „lelógás” −getLeading() – ékezetek helye

70 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 70 FontMetrics  Miért nem a Font tartalmazza a méretadatokat? −Minden GC-specifikus −Mindig az aktuális font metriáit kapjuk mega gc-től.  Hátrány: −Amíg nincs GC, nem tudjuk megmérni a magasságot…

71 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 71 Képek - ImageData  Egy kép leírása  ImageData(String)  ImageData(InputStream) −Betöltés fájlból −Gif, Jpeg, PNG, BMP, ICO, TIFF  ImageData(int,int,int, PaletteData) −Új képet készít  Nincs OS erőforrás

72 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 72 Képek - ImageData  setPixel(int x, int y, int v) – pixel beállítása  setPixels(int,int, int putW, int[] v) – pixelek beállítása  getPixels(int, int, int getW, int[] v) – pixelek lekérdezése  getRGB(int) – RGB a színből  getPixel(RGB) – szín az RGB-ből  scaleTo(int, int) – adott méretre skálázás

73 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 73 Képek - PaletteData  A színformátum leírása egy képre −A színformátum lehet direkt, vagy palettás  PaletteData(RGB[])  getPixel(RGB)  Nincs OS erőforrás

74 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 74 Képek - Image  Image(Device, ImageData) −Kép az ImageData objektumból  Image(Device, int, int) −Üres, meg nem jelenő kép rajzoláshoz  Image(Device, String) −Kép betöltése közvetlenül fájlból  Image(Device, Image, int) – trafó végrehajtás −SWT.DISABLE, SWT.GRAY  OS szintű!

75 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 75 Képek - kirajzolás  A GC-ben  drawImage(Image, int, int) −Adott helyre  drawImage(Image,int,int,int,int,int,int,int,int ) −A kép egy részének kirajzolása az adott helyre

76 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 76 Kurzorok  Cursor(Device, int) −Előre definiált kurzorok −CURSOR_WAIT, CURSOR_HAND, CURSOR_HELP, … −CURSOR_SIZExx -> átméretező alakú kurzor ●Többféle van(égtájak szerint)  Cursor(Device, ImageData, int, int) −Saját kurzor −A két int a hotspot helye (az aktív pont a kurzorban)

77 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 77 Kurzorok használata 1. NINCS dispose!

78 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 78 Kurzorok használata 2. Használat után dispose kell!

79 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 79 Nyomtatás  Grafikus nyomtatás az operációs rendszerben telepített nyomtatókra  Nem minden platformon támogatott −Windows alatt biztosan megy  PrinterData – a nyomtató adatai −Printer.getPrinterList() – telepített nyomtatók −Printer.getDefaultPrinterData() – alapértelmezett −PrintDialog.open() – felhasználó választhat

80 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 80 Nyomtatás  A PrintData-ból egy Printer objektumot készítünk.  startJob(String) … endJob() – nyomtatás  Grafikus erőforrások, mint a képernyő esetén  Rajzolás a Printer GC-jére, a szokásos módon  startPage() … endPage() - lapozás

81 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 81 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose();

82 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 82 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Alapértelmezett nyomtató

83 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 83 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Printer objektum létrehozása

84 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 84 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Job indítása

85 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 85 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Szín előkészítés (piros)

86 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 86 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Kiszámítjuk a nyomtatható méretet

87 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 87 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Lekérdezzük a felbontást

88 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 88 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Elhagyunk egy inchet a baloldaltól (margó)

89 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 89 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Elhagyunk fél inchet a lap tetejétől (margó)

90 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 90 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Létrehozzuk a GC-t

91 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 91 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Elindítjuk az első lapot

92 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 92 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Kiírjuk a stringet

93 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 93 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Pirossal bekeretezzük a stringet

94 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 94 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Vége az oldalnak

95 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 95 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Vége a jobnak

96 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 96 Minta PrinterData data = Printer.getDefaultPrinterData(); Printer printer = new Printer(data); if(printer.startJob("SWTPrinting Example")) { Color red = printer.getSystemColor(SWT.COLOR_RED); Rectangle trim = printer.computeTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int left = dpi.x + trim.x; // 1”from left side of paper int top = dpi.y / 2 + trim.y; // ½”from top edge of p. GC gc= new GC(printer); if(printer.startPage()) { String testString= "Hello World!"; Point extent = gc.stringExtent(testString); gc.drawString(testString, left,top + gc.getFont().getFontData()[0].getHeight()); gc.setForeground(red);gc.drawRectangle(left, top, extent.x, extent.y); printer.endPage();} gc.dispose(); printer.endJob();} printer.dispose(); Eldobjuk a printert (erőforrások felszabadítása)

97 Budapest University of Technology and Economics Fault-tolerant Systems Research Group 97 SWT - összefoglalás  Natív grafikus keretrendszer −Gyors −Egyszerű −Nincsenek benne nagyon extra dolgok…  Lehetőséget ad −Dialógusok −Menük −Komplett alkalmazások elkészítésére −Nyomtatási feladatok megoldására  Kiterjesztés: JFace


Letölteni ppt "Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek SWT haladó komponensek."

Hasonló előadás


Google Hirdetések