Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaKrisztián Fazekas Megváltozta több, mint 10 éve
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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.