Java Programozás 8. Ea: GUI. Graphical User Interface

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Java Programozás 8. Ea: GUI. Graphical User Interface"

Átírás

1 Java Programozás 8. Ea: GUI Graphical User Interface 90/1 B ITv: MAN

2 Java GUI 90/2

3 Minimal version 90/3

4 GUI Javaban A Java három beépített keretrendszere GUI készítéséhez: AWT Abstract Window Toolkit Az operációs rendszer natív grafikus elemeit használja Swing A Java grafikai eszközeit használva megrajzolja a komponenseket Az AWT-t egészíti ki, de NEM helyettesíti azt JavaFX Szintén Javát használva hozza létre az ablakot A Swing utódjának szánják 90/4

5 GUI Javaban AWT java.awt csomag Az 1.0 verziótól a Java része Gyors, a host oldali C kódot (peer code) hívja Nem 100%-ban platform független (pontosabban nem mindenhol működik teljesen ugyanúgy) A host operációs rendszer kinézetével egyező megjelenést biztosít Korlátozott funkcionalitást biztosít, nehezebben portolható, de gyors 90/5

6 GUI Javaban Swing 90/6 javax.swing csomag Amit lehet, Java kóddal valósít meg azaz az alapszintű rajzoló utasításokkal maga rajzolja meg az egyes elemeket (emiatt lassabb, mint az awt) Minden környezetben pontosan ugyanúgy működik A host kinézetére hasonlító, de mindenhol egységes megjelenést ad Fejlettebb funkciókat biztosít, de az alapok megegyeznek az AWT-vel Eseménykezeléshez az AWT biztosította lehetőségeket használja (ill. egészíti ki) A J2SE 1.2 verzióban jelent meg

7 GUI Javaban javafx java.fx csomag A Java SE 8-ban jelent meg Asztali és böngészős alkalmazásokhoz is A Swinghez hasonló, de több funkcionalitást nyújt CSS támogatása Egyszerűbb elrendezés menedzselés Animációk és 3D grafika támogatása 90/7

8 A java.awt csomag lényegi része Object Component Container Button Canvas Checkbox A java.awt csomag (részlete) Panel Choice Window Label Class Abstract Class List Frame Dialog Scrollbar TextField TextComponent TextArea 90/8

9 Az awt csomag felépítése A Component osztály tartalmazza az összes komponenst, és kb. 200 publikus metódust A Container osztályok más komponensek befogadására szolgálnak A Window osztály tartalmazza a legfelső szintű látható komponenseket, a Frame és a Dialog osztályokat, melyekben különböző látható komponensek lehetnek A Panel osztály egy olyan felső szintű konténer osztály, melyben alsóbb szintű grafikus elemek lehetnek, pl. Button, Label Az awt osztály sok elemi komponenst tartalmaz (Button, Label ) ezekből igen bonyolult felület építhető föl 90/9

10 A javax.swing csomag lényegi része Object Component JTextCompnent JComboBox JTextField JTextArea A javax.swing csomag (részlete) Container JLabel JList Class JComponent JMenuBar Abstract Class Window Frame Dialog JOptionPane JPanel JScrollbar JToggleButton JButton JCheckBox JRadioButton JFrame JDialog AbstractButton JMenuItem JMenu 90/10

11 A swing csomag felépítése A swing csomag az 1.2-es Java verzióban jelent meg Nem része a Javanak, hanem annak kiterjesztése, erre utal a javax.swing csomagnév A csomag óriási javulást hozott az awt csomaghoz képest, mind képességekben, kinézetben, testre szabhatóságban, mind a grafikus elemek mennyiségében. A Swing osztályok az eredeti awt csomag alsóbb szintű osztályaira épülnek. Az új, mindig "J" betűvel kezdő komponensek, a Container és Component osztályok leszármazottai. 90/11

12 GUI Javaban A grafikus felület programozásának menete: 1. A felhasználói felületek összepakolása (többnyire előre megírt) komponensekből (létezik kényelmes grafikus fejlesztő környezet rá) 2. Eseménykezelések megírása, az események hatására többnyire a felhasználói felületen módosítunk. 90/12

13 Grafikus komponensek Konténer komponensek: beletehetők más komponensek, akár konténerek is. Tovább csoportosítható: Csúcs konténer: az ablakozó rendszer ablakot biztosít neki (pl. Jframe, JDialog) (egy alkalmazás főablaka vagy felbukkanó párbeszéd ablaka) Nem csúcs konténer: nincs saját ablaka (pl. JPanel), szerepe a belerakott komponensek csoportosítása. Elemi komponensek: Nem tehetők bele más komponensek. (pl. JButton, JLabel) 90/13

14 Komponens fa A komponensek egymásba ágyazhatók szülő-gyermek reláció Szülő komponens: az a konténer, amelybe beleraktunk egy másik komponenst Gyermek komponens: az a komponens (lehet konténer), amelyet beleraktunk a konténerbe A gyermekeknek lehetnek gyermekei Tehát fastruktúra alakul ki, amelynek a csúcsa egy csúcs konténer lehet A szülő felelős a gyermekei megjelenéséért (de nem ő jeleníti meg) 90/14

15 Komponens fa JFrame JPanel JButton JPanel Jlabel JTextField Jlabel JTextField JButton JButton JButton 90/15

16 Komponens tulajdonságai A tulajdonságainak beállításával testre szabhatjuk a komponenst. A tulajdonságok komponensenként mások, de vannak minden komponensre jellemzőek, pl. megjelenéssel kapcsolatosak: méret, pozíció, stb. A közös tulajdonságok célszerűen a közös ősben definiáltak. A komponenseken események történhetnek, amelyekre reagálhatunk, azaz írhatunk kódot, ami meghívódik az esemény hatására. 90/16

17 Komponensek eseményei Események: 90/17 Többnyire felhasználói akciók (pl. egér mozgatása, billentyű leütés), de lehetnek komponens események is (pl. ablak eltakaródása, scrollbar scrollozódása) Az eseménynek van forrása: az a komponens, amelyen keletkezett az esemény (pl. egér kattintás esetén, amely felett állt az egér, billentyű leütésnél amelyik a billentyű fókusz) Esemény kezelés: a keletkezett események egy várakozó sorba kerülnek, ahonnan az eseménykezelő végtelen ciklus kiveszi és feldolgozza. Vagyis: a VM meghívja a programozó által az eseményekhez írt eseménykezelő kódokat. Amelyik eseményhez nem írunk eseménykezelő kódot, arra természetesen nem történik semmi sem.

18 A grafikus program szerkezete Egy GUI program esetén szokás, hogy minden csúcs konténer (ablak) külön osztályban van definiálva. Ebben található az ebből a csúcsból induló komponensfa összepakolása, valamint az ezekhez tartozó eseménykezelő kódok. Természetesen kell egy main metódus valahol, amelynek feladata megjeleníteni az alkalmazás fő ablakát. Egy minimális program tehát egy olyan osztály, amelyben a főablakot pakoljuk össze és írjuk meg az ezeken előfordulható eseményekre reagálást. 90/18

19 A grafikus program Egy GUI-s java program futása ugyanúgy zajlik, mint bármely más programé Fontos viszont tudni, hogy az első grafikus komponens megjelenítéskor a VM elindít egy eseménykezelő szálat, ebben fut majd az összes eseménykezelő kód. A programozó feladata gondoskodni arról, hogy ne lépjen fel konkurencia probléma. 90/19

20 AWT (Abstract Window Toolkit) A korábbi megvalósítás Cél: hardverfüggetlenség, platform függetlenség Cél megvalósítása: nehéz súlyú komponensekkel, azaz a gép ablakozó rendszerétől kéri a komponens létrehozását, megjelenítését. Ennek hátrányai: Eltérő ablakozó rendszerben, eltérő a megjelenés A komponensek kinézete nem változtatható Csak olyan komponensek lehetnek, amelyek minden ablakozó rendszerben léteznek, tehát csak a legalapvetőbb komponensek Ma már a grafikus komponenseit nem használjuk, a többi részét (pl. eseménykezelés, egyéb komponensek) igen. 90/20

21 Swing Újabb megoldás A cél a ugyanaz, mint AWT-nél, de annak hibái nélkül Megoldás: pehelysúlyú komponensek, azaz teljesen java-ban megvalósított komponensek, amelyek csak az alapvető rajzolási funkciókat kéri az ablakozó rendszertől. Előnyei: A kinézet is programozható Sok grafikus komponens Könnyen létrehozható benne új grafikus komponens is 90/21

22 Grafikus Helló Világ import javax.swing.*; public class HelloGr { public static void main(string[] args) { JFrame Foablak = new JFrame("Grafikus Hello"); Foablak.setBounds(0,0,260,150); Foablak.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Foablak.getContentPane().setLayout(null); JLabel Felirat = new JLabel("Helló világ"); Felirat.setBounds(30, 10, 100, 20); Foablak.getContentPane().add(Felirat); Foablak.setVisible(true); xk yk xm y ym Jframe(s): Egy üres grafikus keret (névvel) setbounds(xk,yk,xm,ym): kezdőpont, méret setdefaultcloseoperation: az ablak bezárásakor lefutó metódus setlayout(null): az elrendezés szervező kikapcsolása Jlabel(s): felirat(szöveg) setvisible(t, f): láthatóság be(ki)kapcsolása x 90/22

23 90/23 Grafikus Helló Világ JFrame: legfelső szintű konténer, amely egy képernyőn megjeleníthető ablakot reprezentál. Részei: Root Pane: a képernyő és a tartalom közötti menedzser osztály, közvetíti a tartalmat és a felhasználói eseményeket a megjelenítő felé. Layered Pane: vezérli az egymás fölé kerülő elemek láthatóságát Content Pane: a JFrame alapértelmezett tartalma, egy üres konténer, mely BorderLayout tartalom elrendezőt használ Glass Pane: a JFrame fölötti speciális események kezelő panelje (felhasználói beavatkozások, frame előtti (fölötti) rajzolás ) frame.getcontentpane().add(elem): A tartalom konténer elvétele a frame-től, és az ehhez történő elem hozzáadás kódja. Így lehet hozzáférni egy frame alapértelmezett tartalmához.

24 Grafikus Helló Világ 2 import javax.swing.*; public class HelloGr2 { private static void createandshowgui() { JFrame Foablak = new JFrame("Grafikus Hello"); Foablak.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel Felirat = new JLabel("Helló világ"); Foablak.getContentPane().add(Felirat); Foablak.pack(); Foablak.setVisible(true); 90/24 public static void main(string[] args) { javax.swing.swingutilities.invokelater(new Runnable() { public void run() { createandshowgui(); );

25 Grafikus Helló Világ 2 Ugyanez még egyszer egy kicsit helyesebben: Elrendezés szervezőre (tartalom elrendezőre) bízva a méret és pozíciókat A JPanel alapértelmezett elrendezője: FlowLayout (folyamatos elrendezés) Az eseménykezelő szálban létrehozva a GUI-t, bár erre mivel most nem kezelünk eseményt (így nem fordulhat elő konkurencia probléma) nincs szükség. Újdonságok pack() átszámoltatja az elrendezés szervezőkkel a méreteket, és a pozíciókat SwingUtilities.invokeLater az eseménykezelő szálban futtatja a kódot 90/25

26 Példakód import javax.swing.*; public class Pld_2 extends JFrame { private String bm="bitman mondja:"; public Pld_2() { settitle("pld_2"); setsize(300, 150); setlocationrelativeto(null); JPanel dp = new JPanel(); dp.setlayout(null); this.getcontentpane().add(dp); JLabel jl1 = new JLabel ("Adat:"); dp.add(jl1); jl1.setbounds(10,20,80,20); JTextField jtf1 = new JTextField(""); dp.add(jtf1); jtf1.setbounds(80,20,80,20); settitle(s): a frame felirata setsize(x,y): a frame mérete setlocationrelativeto(null): a frame középre helyezése Jpanel(): Panel konténer this.getcontentpane(): a frame tartalma add():hozzáadás a tartalomhoz JTextField(s): szövegbeviteli mező 90/26

27 Példakód JButton bo = new JButton(); bo.settext("ok"); dp.add(bo); bo.setbounds(180,18,60,24); JButton bc = new JButton(); bc.settext("bezár"); dp.add(bc); bc.setbounds(110,70,80,24); public static void main (String args[]) { Pld_2 p2 = new Pld_2(); p2.setdefaultcloseoperation(jframe.dispose_on_close); p2.setvisible(true); 90/27

28 Példakód JButton bo = new JButton(); bo.settext("ok"); dp.add(bo); bo.setbounds(180,18,60,24); bo.addactionlistener( new ActionListener() { public void actionperformed(actionevent e) { JOptionPane.showMessageDialog( null,"megnyomtad a gombot!", bm,1); ); JButton bc = new JButton(); bc.settext("bezár"); dp.add(bc); bc.setbounds(110,70,80,24); bc.addactionlistener( new ActionListener() { public void actionperformed(actionevent e) { dispose(); setvisible(false); ); 90/28

29 Kattintás eseménykezelése addactionlistener(): kattintást lekezelő eseménykezelő hozzáadása Paramétere az eseménykezelő objektum: ActionListener, mely megvalósítja az ActionPerformed(ActionEvent e) metódust. Ez a metódus hívódik meg, ha egérrel rákattintunk az objektumra, az ebben megadott kód hajtódik ilyenkor végre. dispose(): a frame összes elemének eltávolítása a memóriából setvisible(t,f): az elem láthatóságának beállítása(igaz, hamis) JOptionPane.showMessageDialog(T, Ü, F, I) - Üzenetablak megjelenítése. A megjelenő ablak modális, ez kb. azt jelenti, hogy amíg le nem OKézzuk, nem folytathatjuk a főprogram használatát! T - A tulajdonos (most null, vagyis nincs definiálva) Ü A panelen megjelenő üzenet szövege F - A panel címe, felirata (most a globális bm string) I - A panel ikonja (0-Stop, 1-Info, 2-Figyelmeztetés, 3-Kérdés) 90/29

30 90/30

31 Tartalom elrendezők Javaban a grafikus felület kinézetét, az egyes grafikus elemek elrendezését a különböző Layout osztályok segítségével állíthatjuk be. Ezek az osztályok a java.lang.object-ből származnak és implementálják a java.awt.layoutmanager és java.io.serializable interfészeket. Az egyes Layout objektumokat önmagukban is használhatjuk egyszerűbb felületeknél, de általában többféle elrendezés kombinációjaként jön létre a kívánt elrendezés. 90/31

32 Tartalom elrendezők Az alapértelmezett tartalom elrendező a FlowLayout: Folyamatos elrendezés. Amíg férnek a komponensek, egy sorban helyezkednek el, egymás mellett, vízszintesenközépre igazítva. Ha átméretezzük a panelt, több sorba kerülnek, ha túl sok az alkatrész, az utolsó lelógnak a panelről. 90/32

33 Tartalom elrendezők BorderLayout Szélekhez igazítás, elrendezés az égtájaknak megfelelően. A helyfoglalás az elhelyezés sorrendjében történik. Az elsőként elhelyezett elfoglal egy szeletet a panelen, a második a maradék panelből foglal egy szeletet... Legfeljebb öt komponens helyezhető el. 90/33

34 Tartalom elrendezők GridLayout: Komponensek elhelyezése egy rácsrendszeren. new GridLayout(S,O); S: sorok száma, O: oszlopok száma. Ha megadjuk a sorok számát, az oszlopok számát nem veszi figyelembe a program. Ha a sorok száma 0, akkor az oszlopok száma alapján pakolja a program a komponenseket. A képen látható elrendezés: GridLayout(2,0); 90/34

35 Tartalom elrendezők További lehetőségek: CardLayout: A panelt kártyacsomagra bontja, s az egyes kártyáknak saját LayoutManager-ük van. Egy adott időben csak egy kártya jelenik meg. A felhasználó az egyes kártyák között ugrálhat, melyeken különböző komponensek vannak. 90/35

36 Tartalom elrendezők További lehetőségek: GridBagLayout: A GridBagLayout a legprecízebb az öt AWT LayoutManager között. Hasonlít a GridLayout-ra, de a komponenseknek nem kell azonos méretűnek lenni. Minden komponens egy vagy több cellát is elfoglalhat, továbbá az elhelyezési sorrend nem szükségszerűen bal fentről kiindulva sorrendben haladó. 90/36

37 90/37

38 Példakód JCheckBox import javax.swing.*; import java.awt.event.*; public class Pld_4 extends JFrame { private String bm="bitman mondja:"; private JCheckBox cb1, cb2; private boolean cb1b=false, cb2b=true; private String cb1s="lassan", cb2s="ésszel"; 90/38 public static void main (String args[]) { Pld_4 fm = new Pld_4(); fm.setdefaultcloseoperation(jframe.dispose_on_close); fm.setvisible(true); public Pld_4() { settitle("jelölőnégyzet Példa"); setsize (300, 100); JPanel dp = new JPanel(); dp.setlayout (null); this.getcontentpane().add(dp);

39 Példakód JCheckBox cb1 = new JCheckBox("Gyorsan"); dp.add(cb1); cb1.setbounds(10,20,80,20); cb1.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { if (cb1.isselected()) { cb1b = true; cb1s = "Gyorsan"; else { cb1b = false; cb1s = "Lassan"; JOptionPane.showMessageDialog(null, cb1s, bm, 1); ); 90/39

40 Példakód JCheckBox 90/40 cb2 = new JCheckBox("Ésszel"); dp.add(cb2); cb2.setbounds(100,20,80,20); cb2.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { if (cb2.isselected()) { cb2b = true; cb2s = "Ésszel"; else { cb2b = false; cb2s = "Ész nélkül"; JOptionPane.showMessageDialog(null, cb2s, bm, 1); ); cb2.setselected(true);

41 JCheckBox Jelölőnégyzet. Önálló, ki-, bekapcsolható tulajdonságok. 90/41 Érdemes minden jelölőnégyzethez egy-egy globális logikai változót hozzárendelni (itt cb1b és cb2b), és ezek értékét a változásoknak megfelelően módosítani, így a programban bárhol, bármikor felhasználhatjuk az értéküket. isselected() - Az eseménykezelőben ezzel a metódussal vizsgálható a jelölőnégyzet aktuális értéke. setselected(true, false) - Ezzel a metódussal lehet kódból beállítani a jelölőnégyzet aktuális értékét. Ha induláskor true-ra állítjuk, a hozzátartozó logikai változó is true-ról induljon! Használhatjuk a jelölőnégyzeteket úgy is, hogy egy-egy szöveges változót rendelünk hozzájuk (itt cb1s és cb2s), és ezek értékét módosítgatjuk.

42 Példakód JRadioButton import javax.swing.*; import java.awt.event.*; public class Pld_5 extends JFrame { private String bm="bitman mondja:"; private JRadioButton jrb1, jrb2, jrb3; private String szin="kék"; 90/42 public static void main (String args[]) { Pld_5 fm = new Pld_5(); fm.setdefaultcloseoperation(jframe.dispose_on_close); fm.setvisible(true); public Pld_5() { settitle("rádiógombok Példa"); setsize (300, 100); JPanel dp = new JPanel(); dp.setlayout (null); this.getcontentpane().add(dp);

43 Példakód JRadioButton 90/43 jrb1 = new JRadioButton("Piros"); dp.add(jrb1); jrb1.setbounds(10,20,70,20); jrb1.addactionlistener( new ActionListener() { public void actionperformed( ActionEvent e ) { if (jrb1.isselected()) { szin = "Piros"; JOptionPane.showMessageDialog(null, szin, bm, 1); ); jrb2 = new JRadioButton("Kék"); dp.add(jrb2); jrb2.setbounds(80,20,70,20); jrb2.addactionlistener( new ActionListener() { public void actionperformed( ActionEvent e ) { if (jrb2.isselected()) { szin = "Kék"; JOptionPane.showMessageDialog(null, szin, bm, 1); );

44 Példakód JRadioButton 90/44 jrb3 = new JRadioButton("Zöld"); dp.add(jrb3); jrb3.setbounds(150,20,70,20); jrb3.addactionlistener( new ActionListener() { public void actionperformed( ActionEvent e ) { if (jrb3.isselected()) { szin = "Zöld"; JOptionPane.showMessageDialog(null,szin,bm,1); ); ButtonGroup bg = new ButtonGroup(); bg.add(jrb1); bg.add(jrb2); bg.add(jrb3); jrb2.setselected(true);

45 JRadioButton Rádiógomb. Olyan tulajdonságok kiválasztására használható, ahol a tulajdonságok közül mindig csak egy lehet kiválasztva, de egynek mindig ki kell lennie választva. 90/45 Régen (1950-as, 60-es évek) a rádiókon nyomógombokkal lehetett csatornát váltani. Ha valamelyik gombot benyomtuk, a többi automatikusan kiugrott, egyszerre csak egy lehetett benyomva. isselected() - Az eseménykezelőben ezzel a metódussal vizsgálható a rádiógomb aktuális értéke. Mivel a program biztosítja, hogy csak egy tulajdonság lehessen aktív, ezért elég az aktív állapotot vizsgálni.

46 JRadioButton Rádiógomb. Olyan tulajdonságok kiválasztására használható, ahol a tulajdonságok közül mindig csak egy lehet kiválasztva, de egynek mindig ki kell lennie választva. ButtonGroup - Segítségével kialakítható a rádiógombok csoportja. A csoport biztosítja a rádiógomb elevet, nélküle minden rádiógomb önálló életet él, vagyis kerek jelölőnégyzetként funkcionál. A négyzet körösítése :-) add() - A gombcsoporthoz így adhatók hozzá az önálló gombok. setselected(true) - Ezzel a metódussal lehet kódból beállítani a gombcsoport aktív (kiválasztott) gombját. Ha induláskor nem használjuk, a megjelenő panelen egyetlen 90/46 gomb sem lesz aktív!

47 Példakód JComboBox import javax.swing.*; import java.awt.event.*; public class Pld_6 extends JFrame { private String bm="bitman mondja:"; private JComboBox jcb; private String sel="válassz!"; private JLabel jl2; 90/47 public static void main (String args[]) { Pld_6 fm = new Pld_6(); fm.setdefaultcloseoperation(jframe.dispose_on_close); fm.setvisible(true); public Pld_6() { settitle("lista Példa"); setsize (300, 145); JPanel dp = new JPanel(); dp.setlayout (null); this.getcontentpane().add(dp);

48 Példakód JComboBox 90/48 JLabel jl1 = new JLabel("X="); dp.add(jl1); jl1.setbounds(160,10,20,20); jl2 = new JLabel(sel); dp.add(jl2); jl2.setbounds(180,10,100,20); String elem[] = {"Válassz!","Első","Második","Harmadik"; jcb = new JComboBox(); dp.add(jcb); jcb.setbounds(10,10,120,20); for (String s: elem) jcb.additem(s); jcb.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { sel = (String)jcb.getSelectedItem(); jl2.settext(sel); );

49 JComboBox Legördülő lista additem() Elem(ek) hozzáadása a listához. Itt épp egy tömb segítségével. getselecteditem() Visszaadja a kiválasztott objektumot Ezért kell stringgé konvertálni, ha a vezérlőváltozót stringként tároljuk A lista testre szabható, elemei szerkeszthetők, megoldható a többszörös elem kiválasztás, és sok egyéb más is 90/49

50 Példakód Jspinner(Number) private JSpinner jsp; private String szam="50"; SpinnerModel model = new SpinnerNumberModel(50, 0, 101, 1); jsp = new JSpinner(model); dp.add(jsp); jsp.setbounds(15,15,130,24); jsp.addchangelistener(new ChangeListener() { public void statechanged(changeevent e) { szam = jsp.getvalue().tostring(); if (szam.equals("0")) jsp.setvalue(100); if (szam.equals("101")) jsp.setvalue(1); ); JButton ok = new JButton(); ok.settext("ok"); dp.add(ok); ok.setbounds(180,15,60,24); ok.addactionlistener( new ActionListener() { public void actionperformed( ActionEvent e ) { JOptionPane.showMessageDialog(null,"A szam: "+szam, bm, 1); 90/50 );

51 Jspinner (Number) Pörgettyű, amelynek értéke kis nyilakkal módosítható. SpinnerModel - Pörgettyű modell, lehet szám-, szöveg-, dátum jellegű. SpinnerModel(I, A, F, L) - Számörgettyű modell. 90/51 I - Induló érték A - Alsó érték (legkisebb felvehető érték) F - Felső érték (legnagyobb felvehető érték) L - Lépésköz Az egyes paraméterek valós típusok is lehetnek, pl: (5.25, 0, 10, 0.25) getvalue() - A pörgettyű aktuális értékének lekérdezése. Object-tel tér vissza, ezért mindig olyan formátumúvá kell konvertálni, amilyet a kezelt adat igényel. setvalue(x) - A pörgettyű kijelzett értékének beállítása. Okosság: ha egy lépésköznyivel kibővítjük a megengedett határokat, és az eseménykezelőben a határpontok elérésekor a túloldali határpontra állítjuk a kijelzett értéket, akkor körbeforgó pörgettyűt készíthetünk. Jelen példában 1 és 100 között mozog az érték, így 0-nál 100-ra, 101-nél 1-re ugrik a kijelzés.

52 Példakód Jspinner(List) SpinnerListModel splm = new SpinnerListModel( new String[] {"0","Hapci","Morgó", "Kuka","Tudor","Vidor", "Szendi","Szundi","1"); jsp = new JSpinner(splm); dp.add(jsp); jsp.setbounds(15,15,130,24); jsp.setvalue("hapci"); jsp.addchangelistener(new ChangeListener() { public void statechanged(changeevent e) { torp = jsp.getvalue().tostring(); if (torp.equals("0")) jsp.setvalue("szundi"); if (torp.equals("1")) jsp.setvalue("hapci"); ); Körbeforgó szövegpörgettyű. SpinnerListModel - A lista elemei egy string tömbbel definiálhatók. 90/52

53 Példakód Jspinner(Date) private SimpleDateFormat sdr; sdr = new SimpleDateFormat("yyyy.MM.dd"); java.util.date today = new java.util.date(); //mai dátum! idop = sdr.format(today).tostring(); jsp = new JSpinner(new SpinnerDateModel()); String minta = ((SimpleDateFormat)sdr.getDateInstance()).toPattern(); jsp.seteditor(new JSpinner.DateEditor(jsp, minta)); dp.add(jsp); jsp.setbounds(15,15,130,24); jsp.setvalue(today); jsp.addchangelistener(new ChangeListener() { public void statechanged(changeevent e) { Object value = jsp.getvalue(); idop = sdr.format(value).tostring(); ); 90/53

54 Jspinner (Date) SimpleDateFormat Kódokkal definiálható dátumformátum import java.text.simpledateformat; getdateinstance() - A dátum formátumának lekérdezése topattern() - A formátum stringgé alakítása seteditor - A pörgettyű módosító logikájának beállítása DateEditor(P, M) - Új pörgettyű módosító logika megadása P - Pörgettyű M - Mintázat, vagyis a dátum formátumának a stringje 90/54

55 Jtable TableModel import javax.swing.table.defaulttablemodel; public class TM extends DefaultTableModel { public TM (Object fildnames[], int rows){ super(fildnames, rows); public boolean iscelleditable(int row, int col) { return false; public Class<?> getcolumnclass(int index){ //Egyetlen sor, egyetlen cellája sem szerkeszthető if(index == 2){return(Integer.class); return(string.class); //A 2-es oszlop integer, a többi string típusú A táblázat kezelése egy táblamodellel kezdődik. A modellben lehet megadni az egyes mezők szerkeszthetőségét, és a mezők típusát. A DefaultTableModel leszármaztatásával jön létre, konstruktorában kapja meg a mezőneveket, és az oszlopok számát. 90/55

56 Példakód JTable import javax.swing.*; public class Table1 extends JFrame { private TM tm; private JTable t; public Table1() { settitle("táblázat példa"); setsize (300, 150); JPanel dp = new JPanel(); dp.setlayout (null); this.getcontentpane().add(dp); /56 Object tnev[] = {"Kód","Név","IQ"; tm = new TM( tnev,0 ); tm.addrow(new Object[]{"HB25RD","Kis Béla",89); tm.addrow(new Object[]{"WDNO0Y","Makk Éva",105); tm.addrow(new Object[]{"PDA92W","Jó Gabi",114); tm.addrow(new Object[]{"ELIT66","Okos Joe",137); tm.addrow(new Object[]{"RAIN6M","Buta Joe",77);

57 Példakód JTable t = new JTable(tm); JScrollPane jsp = new JScrollPane(t); dp.add(jsp); jsp.setbounds(10,10,210,80); public static void main (String args[]) { Table1 fm = new Table1(); fm.setdefaultcloseoperation(jframe.dispose_on_close); fm.setvisible(true); 90/57

58 JTable A táblázat megjelenítésének célszerű sorrendje: 90/58 1. Mezőnevek megadása 2. Táblamodell példányosítása (tm, létrejön a mezőnevekkel, és 0 sorral) 3. Ha már létezik a táblamodell példány, hozzá lehet adni sorokat Fontos: a táblamodell példányban módosítjuk az adatokat tm.addrow( ); - sor hozzáadása tm.removerow(i); - az i. sor törlése 4. Tábla (JTable) példányosítása a táblamodell alapján t = new JTable(hgtm); 5. Célszerű a táblázatot egy görgetősávos panelre szerelni, és a panelt megjeleníteni JScrollPane jsp = new JScrollPane(t); dp.add(jsp); 6. Megnézni az alkotást, és gyönyörködni!

59 Példakód JTable t = new JTable(tm); JScrollPane jsp = new JScrollPane(t); dp.add(jsp); jsp.setbounds(10,10,210,80); TableColumn tc = null; for (int i = 0; i < 3; i++) { tc = t.getcolumnmodel().getcolumn(i); if (i == 0) {tc.setpreferredwidth(80); else if (i == 2) {tc.setpreferredwidth(50); else {tc.setpreferredwidth(100); t.setautocreaterowsorter(true); TableRowSorter<TM> ts = (TableRowSorter<TM>)t.getRowSorter(); ts.setsortable(0,false); 90/59

60 JTable Oszlopszélesség beállítás: 1. TableColumn - Táblázat oszlop 2. getcolumnmodel() - Az táblamodelltől lekérdezi az oszlopmodellt getcolumn(i) - Az i-edik oszlop lekérdezése az oszlopmodelltől 3. setpreferredwidth(x) - Oszlopszélesség beállítása százalékban Adatsorok rendezése: 90/60 4. setautocreaterowsorter(true); - Automatikus adatsor-rendezés bekapcsolása 5. TableRowSorter<táblamodell> - Táblázat adatsor-rendező getrowsorter() - Az adatsor-rendező lekérdezése a táblamodelltől 6. setsortable(x,false) - A rendezhetőség ki- vagy bekapcsolása az x. oszlopra Rendezéshez rá kell kattintani az megfelelő oszlopnévre, az oszlopnév mellett megjelenő nyílhegy jelzi a rendezés növekvő vagy csökkenő jellegét.

61 Példakód JTabbedPane import java.awt.*; import javax.swing.*; public class TP extends JFrame { private JTabbedPane jtp; private JPanel dp, jp1, jp2, jp3; private Font fnt = new Font("Arial", Font.BOLD, 24); public TP() { settitle("fülespanel Példa"); setsize (300, 150); JPanel dp = new JPanel(); dp.setlayout (null); this.getcontentpane().add(dp); jtp = new JTabbedPane(); 90/61 jp1 = new JPanel(); jp1.setlayout(null); JLabel jl1 = new JLabel ("P1"); jp1.add(jl1); jl1.setbounds(20,10,50,20); jl1.setfont(fnt);

62 Példakód JTabbedPane jp2 = new JPanel(); jp2.setlayout(null); JLabel jl2 = new JLabel ("P2"); jp2.add(jl2); jl2.setbounds(20,10,50,20); jl2.setfont(fnt); jp3 = new JPanel(); jp3.setlayout(null); JLabel jl3 = new JLabel ("P3"); jp3.add(jl3); jl3.setbounds(20,10,50,20); jl3.setfont(fnt); jtp.addtab("p1", jp1); jtp.addtab("p2", jp2); jtp.addtab("p3", jp3); dp.add(jtp); jtp.setbounds(10,10,260,90); public static void main(string[] args) { TP gk = new TP(); gk.setdefaultcloseoperation(jframe.exit_on_close); gk.setvisible(true); 90/62

63 JTabbedPane Füles panel 1. Létrehozunk egy füles panelt, 2. Mminden füléhez készítünk egy-egy panelt, 3. Rászereljük a panelekre az alkatrészeket (most egy-egy nagybetűs feliratot), 4. Hozzárendeljük a paneleket a fülekhez, 5. Megjelenítjük a füles panelt. Kész. Font(N, S, M) - Font létrehozása 90/63 N - Fonttípus (Használhatók a telepített fontok (Arial, Times New Roman...) és néhány szimbolikus font (Serif, SansSerif, Monospaced, Dialog...) S - Stílus (PLAIN-normál, BOLD-félkövér, ITALIC-dőlt) M - Méret (általában 10-48, de int tip. számot elfogad)

64 Példakód JMenu import java.awt.event.*; import javax.swing.*; public class MN extends JFrame implements ActionListener { private JMenu menu1, menu2, menu3, menuker; private JMenuItem lista1, beszur1, torol1, kilep; private JMenuItem kaz, knev, kiq; private JCheckBoxMenuItem jcbm; private JMenuBar menusor; private JLabel szoveg; public MN() { settitle("menü Példa"); setsize (300, 185); 90/64 JPanel dp = new JPanel(); dp.setlayout (null); this.getcontentpane().add(dp); szoveg = new JLabel ("Felirat"); dp.add(szoveg); szoveg.setbounds(20,40,200,20);

65 Példakód JMenu menu1 = new JMenu("Adatok"); menu1.setmnemonic(keyevent.vk_1); lista1 = new JMenuItem("Lista"); lista1.setmnemonic(keyevent.vk_l); lista1.addactionlistener(this); beszur1 = new JMenuItem("Beszúrás"); beszur1.setmnemonic(keyevent.vk_b); beszur1.addactionlistener(this); torol1 = new JMenuItem("Törlés"); torol1.setmnemonic(keyevent.vk_t); torol1.addactionlistener(this); kilep = new JMenuItem("Kilépés"); kilep.setmnemonic(keyevent.vk_k); kilep.addactionlistener(this); menuker = new JMenu("Keresés"); menuker.setmnemonic(keyevent.vk_r); 90/65 ALT + R kaz=new JMenuItem("Azonosítóra..."); kaz.setmnemonic(keyevent.vk_a); kaz.addactionlistener(this); knev = new JMenuItem("Névre..."); knev.setmnemonic(keyevent.vk_n); knev.addactionlistener(this); kiq = new JMenuItem("IQ-ra..."); kiq.setmnemonic(keyevent.vk_i); kiq.addactionlistener(this); menuker.add(kaz); menuker.add(knev); menuker.add(kiq); menu1.add(lista1); menu1.add(beszur1); menu1.addseparator(); menu1.add(menuker); menu1.addseparator(); menu1.add(torol1); menu1.add(kilep);

66 Példakód JMenu menu2 = new JMenu("Beállítások"); menu2.setmnemonic(keyevent.vk_2); jcbm = new JCheckBoxMenuItem("Magyarázatok"); jcbm.setstate(true); jcbm.setmnemonic(keyevent.vk_g); jcbm.addactionlistener(this); menu2.add(jcbm); menu3 = new JMenu("Egyéb"); menu3.setmnemonic(keyevent.vk_3); menusor = new JMenuBar(); this.setjmenubar(menusor); menusor.add(menu1); menusor.add(menu2); menusor.add(menu3); 90/66

67 Példakód JMenu public void actionperformed(actionevent e) { if (jcbm.isselected()) {szoveg.settext("beállítás: Magyarázatokkal"); else {szoveg.settext("beállítás: Magyarázatok nélkül"); if(e.getsource().equals(kilep)) {this.dispose(); System.exit(0); if(e.getsource().equals(lista1)) {szoveg.settext("adatok - Listázás"); if(e.getsource().equals(beszur1)) {szoveg.settext("adatok - Beszúrás"); if(e.getsource().equals(torol1)) {szoveg.settext("adatok - Törlés"); if(e.getsource().equals(kaz)) {szoveg.settext("keresés - Azonosítóra"); if(e.getsource().equals(knev)) {szoveg.settext("keresés - Névre"); if(e.getsource().equals(kiq)) {szoveg.settext("keresés - IQ-ra"); public static void main(string[] args) { MN frame = new MN(); frame.setdefaultcloseoperation(jframe.dispose_on_close); frame.setvisible(true); 90/67

68 JMenu Vannak főmenük, és almenük. A főmenük egy menüsorban helyezkednek el. Az elemek megjelenítése, kiválasztása automatikus, csak a hozzájuk tartozó akciókat kell megadni. JMenu(név) - Főmenü. Megjelenik a menüsorban. JMenuItem(név) - Almenü. Főmenühöz tartozik. Akcióvezérlő szükséges a működéséhez. JMenuBar - Menüsor. Főmenüket lehet hozzáadni. A menücsoport olyan főmenü, amely egy másik főmenühöz van almenüként hozzárendelve. Főmenüszerűen jön létre, de almenüként funkcionál. Jelen esetben létrehozzuk a Keresés főmenüt, hozzáadunk három almenüt, végül a Keresés menüt hozzáadjuk a menu1 főmenühöz. Semmi extra parancs, csak egy kis logikai játék. Ha szeretnénk a Keresést elkülöníteni a menu1 többi almenüjétől, rakjunk alá és fölé szeparátort: menu1.addseparator(); 90/68

69 JMenu Az állapotmenü ki- vagy bekapcsolt értékét egy picike jelölőnégyzet jelzi. JCheckBoxMenuItem - Állapotmenü. Értéke true vagy false lehet. setstate(true vagy false); - Állapotmenü alapértékének beállítása. Az állapotmenü értékváltozását az isselected() metósussal kezelhetjük le. Gyorsbillentyűk: Hasznosak, főleg ha nincs egér - a spájzban :-). setmnemonic(bill.kód) - Gyorsbillentyű hozzáadása menühöz. Bármilyenhez. KeyEvent.VK_H - Billentyűleütés, jelen esetben az ALT+H billentyűé. A spéci billentyűkhöz spéci kódok tartoznak, nézz utána a helpben. Menükhöz célszerűbb egy közös eseménykezelőt írni, és itt beállítani minden almenü akcióját. 90/69

70 Teszt 1. Melyik eszközkészletre alapoz a swing GUI programozás? GUI toolkit Abstract Windowing Toolkit Graphics Event Toolkit Java Enhancement Toolkit Operating System GUI toolkit 90/70

71 Teszt 2. Jelölje meg az összes igaz állítást a swing csomaggal kapcsolatban! A legelső verziótól a Java része A host oldali C kódot hívja meg a kirajzoláshoz Lassú a garafika megjelenítése Támogatja az animációt és a 3D grafikát Egységes megjelenítési felületet biztosít A Java SE 8-ban jelent meg Az eseménykezelésben épít az előző verzióra Minden objektumának neve J betűvel kezdődik 90/71

72 Teszt 3. A GUI programozás három fő eleme a következő: Windows, Buttons, Mice GUI Components, Graphics, Code GUI Components, Event Listeners, Application Code Frames, Code, Events Window, GUI Components, Events 90/72

73 Teszt 4. Mi a neve annak a konténer komponensnek, amiben megjelennek a grafikus elemek? Window Screen JPanel JFrame JContainer 90/73

74 Teszt 5. Egészítse ki a kódot úgy, hogy megjelenjen a program ablaka! public class microgui { public static void main (String[] args){ JFrame frm = new (); frm. ( 150, 100 ); frm. ( true ); Frame, setsize, setvisibleon JFrame, setsize, setvisible JFrame, setbounds, dispose Form, setbounds, setvisible 90/74

75 Teszt 6. Melyik az a komponens, amelyik meghatározza, hogy hogyan jelennek meg a konténer összetevői? Display Manager Component Manager Stage Manager Layout Manager Visible Manager 90/75

76 Teszt 7. Az alábbi tartalom elrendezők közül melyik jeleníti meg az egyes elemeket sorban, egymás után, a hozzáadás sorrendjében? CardLayout FlowLayout GridLayout BorderLayout OrderLayout 90/76

77 Teszt 8. Melyik interfészt kötelező implementálni ahhoz, hogy egy nyomógomb eseményt le tudjon a program kezelni? ButtonCustomer Runnable ButtonListener ActionManager ActionListener ActionPerformed 90/77

78 Teszt 9. Melyik metódust kell implementálni ahhoz, hogy egy nyomógomb eseménykezelője működőképes legyen? buttonperformed() actionperformed() buttonlistener() actionhandler() actionlistener() buttonhandler() 90/78

79 Teszt 10. Egészítse ki a kódot úgy, hogy működőképes legyen! public TextExample() { text = new JTextField( ) ; ( new FlowLayout() ); add( ); text, setlayout, 20 20, setlayout, text 20, put, frame 20, set, text 90/79

80 Teszt 11. Melyik metódussal lehet kiolvasni egy JTextField tartalmát? readtext() gettext() getstring() getdata() readstring() 90/80

81 Teszt 12. Hogyan lehet megakadályozni, hogy egy JTextField mezőbe a felhasználó adatot írhasson? seteditable(false) seteditable(true) setnoeditable() setreadableonly() setreadable(true) 90/81

82 Teszt 13. Melyik egy JPanel alapértelmezett tartalom elrendezője? PanelLayout FrameLayout FlowLayout BoxLayout GridLayout 90/82

83 Teszt 14. Melyik kóddal lehet kikapcsolni egy JPanel tartalom elrendezőjét? jp.setlayout(null); jp.getcontentpane(null); jp.setlayoutmanager(false); jp.setlayout(false); jp.getcontentpane(layout(null)); 90/83

84 Teszt 15. Melyik grafikus elem látható az ábrán? JComboBox JCheckList JCheckBox JSpinner JRollingMenuItem 90/84

85 Teszt 16. Melyik metódussal lehet vizsgálni egy JCheckBox kiválasztott állapotát? getselected() isselected() selected() getvalue() Egyik felsorolt metódussal sem 90/85

86 Teszt 17. Melyik JFrame konstans jelzi, hogy a programnak le kell állnia, amikor az ablakot bezárja a felhasználó? TERMINATE_ON_CLOSE IMMEDIATELY_CLOSE EXIT_ON_CLOSE DISPOSE_WHEN_CLOSE Egyik felsorolt konstans sem 90/86

87 Teszt 18. Melyik egy JFrame alapértelmezett tartalom elrendezője? Nincs alapértelmezett tartalom elrendezője FrameLayout FlowLayout BorderLayout GridLayout 90/87

88 Teszt 19. Melyik elem biztosítja egy ablak alapértelmezett jellemzőit, a címsávot, és az átméretező gombokat? JWindow JFrame JSwing JWindowControl JPanel 90/88

89 Felhasznált irodalom Ficsor Lajos elektronikus jegyzetei Elek Tibor elektronikus jegyzetei oldal anyagai prog.hu oldal anyagai 90/89

90 VÉGE VÉGE 90/90

Java felhasználói felület

Java felhasználói felület Java felhasználói felület Alapfogalmak Komponens alapok Elek Tibor GUI-val kapcsolatos fogalmak Eseményvezérelt program Program futás: - induló állapot (induló UI) megjelenítése, - eseménykezelő végtelen

Részletesebben

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr. Programozási Grafikus Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt: heavy weight" komponensek swing:

Részletesebben

Java Programozás 3. Gy: Java GUI. Swing, AWT

Java Programozás 3. Gy: Java GUI. Swing, AWT Java Programozás 3. Gy: Java GUI Swing, AWT 35/1 B ITv: MAN 2018.02.25 Feladat Készítsük el az Emp osztály kezelő programját úgy, hogy ArrayList-et (listatömb, tömblista, rugalmas tömb) használunk. A java.util.arraylist

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Grafikus felhasználói felület Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt,,heavy weight"

Részletesebben

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).

Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Mi hogyan használjuk? awt: eseménykezelés,

Részletesebben

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész Java Programozás 6. Gy: Java alapok Adatkezelő 2.rész 25/1 B ITv: MAN 2018.04.13 A feladat Feladat: folytassuk a panel életre keltését! - Alakítsuk ki a Lista panelt - Betöltéskor olvassuk be az adatokat

Részletesebben

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { Adatkezelés JDBC-vel 1 abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { private JTabbedPane jtp; private JPanel dp,

Részletesebben

Java felhasználói felület

Java felhasználói felület Java felhasználói felület Alapfogalmak Komponens alapok Elek Tibor GUI-val kapcsolatos fogalmak Eseményvezérelt program Program futás: - induló állapot (induló UI) megjelenítése, - eseménykezelő végtelen

Részletesebben

Java Programozás 11. Ea: MVC modell

Java Programozás 11. Ea: MVC modell Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát

Részletesebben

Java Programozás 8. Gy: Java alapok. Adatkezelő 4.rész

Java Programozás 8. Gy: Java alapok. Adatkezelő 4.rész Java Programozás 8. Gy: Java alapok Adatkezelő 4.rész 37/1 B ITv: MAN 2018.04.15 A feladat Feladat: folytassuk a panel életre keltését! - Készítsük el a Módosítás funkciót - A Lista panelt másoljuk le,

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html 1 Kivételkezelés I. szokatlan, váratlan

Részletesebben

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész Java Programozás 5. Gy: Java alapok Adatkezelő 1.rész 27/1 B ITv: MAN 2018.04.13 Feladat Egy nagyon hosszú feladatmegoldásba kezdünk bele: létrehozunk egy adatkezelő programot, sok-sok extrával: 27/2 A

Részletesebben

Grafikus felhasználói felületek. Abstract Window Toolkit, a java.awt és java.awt.event csomagok

Grafikus felhasználói felületek. Abstract Window Toolkit, a java.awt és java.awt.event csomagok Grafikus felhasználói felületek készítése és eseménykezelés Java-ban Abstract Window Toolkit, a java.awt és java.awt.event csomagok Abstract Window Toolkit Absztraktizálás: az osztályok és funkcionalitások

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Swing GUI készítése NetBeans IDE segítségével Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Bevezető Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi

Részletesebben

Java Programozás 7. Gy: Java alapok. Adatkezelő 3.rész

Java Programozás 7. Gy: Java alapok. Adatkezelő 3.rész Java Programozás 7. Gy: Java alapok Adatkezelő 3.rész 39/1 B ITv: MAN 2018.04.11 A feladat Feladat: folytassuk a panel életre keltését! - Alakítsuk ki az Új dolgozó felvitele panelt - A panel a Beszúr

Részletesebben

Swing. (A javax.swing csomag)

Swing. (A javax.swing csomag) Swing (A javax.swing csomag) SWING komponensek Motiváció: az AWT hátrányai: a toolkit-ek komplexitása (bug-ok forrása volt, sérti a platformfüggetlenséget), kevés lehetőség a megjelenítés befolyásolására,

Részletesebben

Swing GUI készítése NetBeans IDE segítségével

Swing GUI készítése NetBeans IDE segítségével Programozási Swing e NetBeans IDE segítségével Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 2 Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi feladatunk volt az

Részletesebben

JAVA PROGRAMOZÁS 5.ELŐADÁS

JAVA PROGRAMOZÁS 5.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 5.ELŐADÁS 2014-2015 tavasz Elrendezésmenedzserek, események 2 Elrendezésmenedzserek Elrendezésmenedzser 3 Minden konténernek van elrendezésmenedzsere

Részletesebben

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig

Részletesebben

Java programozási nyelv 8. rész Grafikus felhasználói felület

Java programozási nyelv 8. rész Grafikus felhasználói felület Java programozási nyelv 8. rész Grafikus felhasználói felület Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17

Részletesebben

- Alkalmazásfejlesztési szemlélet megismerése - Java GUI készítés bemutatása Swing-ben - Órai feladat megoldása

- Alkalmazásfejlesztési szemlélet megismerése - Java GUI készítés bemutatása Swing-ben - Órai feladat megoldása - Alkalmazásfejlesztési szemlélet megismerése - Java GUI készítés bemutatása Swing-ben - Órai feladat megoldása A gyakorlat keretein belül egy könyvesboltot megvalósító alkalmazást készítünk el lépésről

Részletesebben

VI. Grafikus Java alkalmazások

VI. Grafikus Java alkalmazások VI. Grafikus Java alkalmazások 1. Bevezetés Programjaink egészen eddig algoritmusvezérelt módon, konzolos környezetben kommunikáltunk a felhasználókkal. A program menetét az határozta meg, hogy a kódban

Részletesebben

A Java nyelv. Dialógus ablakok. Elek Tibor

A Java nyelv. Dialógus ablakok. Elek Tibor A Java nyelv Dialógus ablakok Elek Tibor Dialógus ablakok Szerepe: felbukkanó ablak (üzenet, input) Felépítése, használata majdnem ua., mint JFrame Tulajdonos: lehet tulajdonosa, amellyel együtt ikonizálódik,

Részletesebben

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Java GUI készítése, Oracle kapcsolódás JDBC-vel A jelen anyagban egy egyszerűsített megközelítéssel vizsgáljuk

Részletesebben

Java Programozás 2. Gy: EmpProgram. Grafikus felületű adatkezelő program

Java Programozás 2. Gy: EmpProgram. Grafikus felületű adatkezelő program Java Programozás 2. Gy: EmpProgram Grafikus felületű adatkezelő program 110/1 B ITv: MAN 2019.04.26 EmpProgram A programosztály A cél: olyan grafikus felületű program elkészítése, mellyel a következő szerkezetű

Részletesebben

Eseménykezelés Java környezetben, AWT alapok

Eseménykezelés Java környezetben, AWT alapok Java programozási nyelv 2007-2008/ősz 4. óra Eseménykezelés Java környezetben, AWT alapok Felhasználói felületek Eseménykezelés AWT ablakozó rendszer legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu

Részletesebben

A feladatok megoldásához felhasználandó osztályok leírásait az alábbi URL-en találja meg: http://download.oracle.com/javase/6/docs/api/

A feladatok megoldásához felhasználandó osztályok leírásait az alábbi URL-en találja meg: http://download.oracle.com/javase/6/docs/api/ Java Swing MVC labor Készítette: Budai Péter, BME IIT, 2012. A feladatok megoldásához felhasználandó osztályok leírásait az alábbi URL-en találja meg: http://download.oracle.com/javase/6/docs/api/ Továbbá

Részletesebben

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák A Portál rendszer felületének általános bemutatása Felhasználói útmutató Támogatott böngészők Internet Explorer 9+ Firefox (legújabb verzió) Chrome (legújabb verzió) Felületek felépítése Információs kártyák

Részletesebben

Java felhasználói felület

Java felhasználói felület Java felhasználói felület Közbenső konténerek Elrendezés szervezők Elek Tibor Konténerek Közbenső konténerek - általános célú: +JPanel: egy egyszerű konténer, plussz funkciók nélkül +JScrollPane: az egy

Részletesebben

Java felhasználói felület

Java felhasználói felület Java felhasználói felület Eseménykezelés Elek Tibor Eseményosztályok Az események előfordulásakor keletkezik egy megfelelő eseményobjektum. Pl. KeyPressed vagy KeyReleased (billentyű lenyomása vagy felengedése)

Részletesebben

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet    Copyright 2008 Johanyák Zsolt Csaba Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen

Részletesebben

Java programozási nyelv 6. rész Java a gyakorlatban

Java programozási nyelv 6. rész Java a gyakorlatban Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék

Részletesebben

Programozási technológia I. programból! A Gomb4 megoldásból induljunk ki!

Programozási technológia I. programból! A Gomb4 megoldásból induljunk ki! Menü Menü Egészítsük ki a kattintás számláló programot egy menüvel, amelyben nullázhatjuk a számláló értékét, illetve kiléphetünk a programból! A Gomb4 megoldásból induljunk ki! Menü Menüsor felépítése

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2015. 03. 18. 6. El adás Graka Java-ban Emlékezzünk kicsit vissza a tikz-re: \begin{tikzpicture \draw (0,0) node[draw,circle] (S) {s; \draw (3,2) node[draw,circle] (A) {a; \draw

Részletesebben

ZH mintapélda. Feladat. Felület

ZH mintapélda. Feladat. Felület ZH mintapélda Feladat Írjon Java alkalmazást, amely képes hallgatók rekordjaittárolni és azokat különbözo rendezo kulcsok szerint sorba rendezni. A program grafikus felhasználói felületén keresztül új

Részletesebben

Grafikus felhasználói felületek, eseménykezelés

Grafikus felhasználói felületek, eseménykezelés Programozási Grafikus felhasználói felületek, eseménykezelés alapjai Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 alapjai 3 alapjai 2 alapjai Egészítsük ki a már korábban elkészített Számláló

Részletesebben

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik

Részletesebben

Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - II. / 1

Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - II. / 1 5. A felhasználói interfész felépítése 6. Elrendezésmenedzserek 7. Eseményvezérelt programozás 8. Swing-komponensek 9. Grafika, képek 10. Alacsony szintű események 11. Belső eseménykezelés, komponensgyártás

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás

Részletesebben

Grafikus felületek készítése 1.

Grafikus felületek készítése 1. Grafikus felületek készítése 1. SWT Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Grafikus felületek fejlesztése Java grafikus toolkitek o AWT Na>v widgetek

Részletesebben

JAVA SE/ME tanfolyam tematika

JAVA SE/ME tanfolyam tematika JAVA SE/ME tanfolyam tematika TANFOLYAM TEMATIKA: A JAVA MEGISMERÉSE Java története, miért készült, miért népszerű NETBEANS környezet telepítése, megismerése Programozási alapok java nyelven Változók,primitív

Részletesebben

Concurrency in Swing

Concurrency in Swing Concurrency in Swing A szálkezelés a swing alkalmazásokban is fontos. Cél egy olyan felhasználói felület készítése, amely soha nem fagy, mindig válaszol a felhasználói interakciókra, bármit is csináljon

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 8. előadás Visszatekintés A Windows Console alkalmazások egy karakteres képernyőt biztosítottak, ahol a kimenet a kiírt szöveg, míg a bemenet a billentyűzet volt.

Részletesebben

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 7. ELŐADÁS Több információ az alkalmazásban - Fülek az űrlapon - Több űrlapos alkalmazások 2 Több információ az alkalmazásban

Részletesebben

Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008.

Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008. Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008. Változáskezelés Verzió Dátum Változás Pont Cím Oldal Kiadás: 2008.10.30. Verzió: 2.0. Oldalszám: 2 / 11 Tartalomjegyzék 1.

Részletesebben

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\

Részletesebben

Táblázatok. Táblázatok beszúrása. Cellák kijelölése

Táblázatok. Táblázatok beszúrása. Cellák kijelölése Táblázatok Táblázatok beszúrása A táblázatok sorokba és oszlopokba rendezett téglalap alakú cellákból épülnek fel. A cellák tartalmazhatnak képet vagy szöveget. A táblázatok használhatók adatok megjelenítésére,

Részletesebben

Választó lekérdezés létrehozása

Választó lekérdezés létrehozása Választó lekérdezés létrehozása A választó lekérdezés egy vagy több rekordforrásból származó adatokat jelenít meg. A választó lekérdezések a táblák, illetve az adatbázis tartalmát nem változtatják meg,

Részletesebben

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak

Részletesebben

Táblázatok kezelése. 1. ábra Táblázat kezelése menüből

Táblázatok kezelése. 1. ábra Táblázat kezelése menüből Táblázat beszúrása, létrehozása A táblázatok készítésének igénye már a korai szövegszerkesztőkben felmerült, de ezekben nem sok lehetőség állt rendelkezésre. A mai szövegszerkesztőket már kiegészítették

Részletesebben

ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor

ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés Készítette: Gregorics Tibor Előfeltétel: OAF (EAF2) Kötelező házi feladatok: 4 darab feladat max. 5-5 pontért Feltételek 2 hét késés: legfeljebb 3

Részletesebben

OOP: Java 8.Gy: Gyakorlás

OOP: Java 8.Gy: Gyakorlás OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét

Részletesebben

Thermo1 Graph. Felhasználói segédlet

Thermo1 Graph. Felhasználói segédlet Thermo1 Graph Felhasználói segédlet A Thermo Graph program a GIPEN Thermo eszközök Windows operációs rendszeren működő grafikus monitorozó programja. A program a telepítést követően azonnal használható.

Részletesebben

3. modul - Szövegszerkesztés

3. modul - Szövegszerkesztés 3. modul - Szövegszerkesztés Érvényes: 2009. február 1-jétől Az alábbiakban ismertetjük a 3. modul (Szövegszerkesztés) syllabusát, amely a gyakorlati vizsga alapját képezi. A modul célja Ezen a vizsgán

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

BME MOGI Gépészeti informatika 8.

BME MOGI Gépészeti informatika 8. BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Táblázatos adatok használata

Táblázatos adatok használata Táblázatos adatok használata Tartalomjegyzék 1. Az adatok rendezése...2 2. Keresés a táblázatban...2 3. A megjelenő oszlopok kiválasztása...3 4. Az oszlopok sorrendjének meghatározása...4 5. Az oszlopok

Részletesebben

Access adatbázis elérése OLE DB-n keresztül

Access adatbázis elérése OLE DB-n keresztül Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

GráfRajz fejlesztői dokumentáció

GráfRajz fejlesztői dokumentáció GráfRajz Követelmények: A GráfRajz gráfokat jelenít meg grafikus eszközökkel. A gráfot többféleképpen lehet a programba betölteni. A program a gráfokat egyedi fájl szerkezetben tárolja. A fájlokból betölthetőek

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

Részletesebben

I. Szakmai törzsanyag

I. Szakmai törzsanyag I. Szakmai törzsanyag A 19 témakör tartalmaz algoritmuselméletet, programozási tételeket, tipikus adatfeldolgozó feladatokat, programozási nyelvi alapelemeket, technológiai ismereteket, áttekinti a Java

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 04. 08. 10. Előadás Ami kimearad múlthéten Ha már megvan a KeyListener vagy MouseListener osztályunk a következõ módon tudjuk hozzárendelni egy JFrame vagy JPanel-hez: Ami

Részletesebben

az adatbevitel szabályozása, alapok

az adatbevitel szabályozása, alapok az adatbevitel szabályozása, alapok De, Tanító bácsi! Én úgy tudom, hogy ezt igazából, csak adatbázisban tudjuk megtenni! Hááát Ez igaz Pistike! Bár egy-két eszköz a táblázat-kezelő programban is a rendelkezésünkre

Részletesebben

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani. Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként

Részletesebben

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben. Access alapok Megnevezés Művelet Minta Új adatbázis Új / Üres adatbázis.. A tábla mezőinek beállítása tervező nézetben Mezőnév = az adott oszlop neve, Adattípus = az oszlopban szereplő adatok mintája (szöveg,

Részletesebben

Microsoft Word előadás. Bevezetés az informatikába I.

Microsoft Word előadás. Bevezetés az informatikába I. Microsoft Word előadás Bevezetés az informatikába I. A Word felépítése Menüsor Eszköztár Vonalzók Kurzor Dokumentum Állapotsor Betűk betűtípus fogalma betűméret félkövér, dőlt, aláhúzott proporcionális

Részletesebben

Információs technológiák 2. Gy: CSS, JS alapok

Információs technológiák 2. Gy: CSS, JS alapok Információs technológiák 2. Gy: CSS, JS alapok 1/69 B ITv: MAN 2017.10.01 Ismétlés Van egy Web nevű mappánk, ebben vannak az eddig elkészített weboldalak (htm, html) képek (jpg, png). Logikai felépítés

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

POSZEIDON dokumentáció (1.2)

POSZEIDON dokumentáció (1.2) POSZEIDON dokumentáció (1.2) Bevezetés a Poszeidon rendszer használatába I. TELEPÍTÉS Poszeidon alkalmazás letölthető: www.sze.hu/poszeidon/poszeidon.exe Lépések: FUTTATÁS / (FUTTATÁS) / TOVÁBB / TOVÁBB

Részletesebben

Programozás III GRAFIKA RAJZOLÁS SWING FELÜLETEN RAJZOLÁS GRAFIKA HASZNÁLATA. Rajzolni az awt csomag Graphics osztályának metódusaival tudunk.

Programozás III GRAFIKA RAJZOLÁS SWING FELÜLETEN RAJZOLÁS GRAFIKA HASZNÁLATA. Rajzolni az awt csomag Graphics osztályának metódusaival tudunk. Programozás III GRAFIKA GAFIKA RAJZOLÁS GRAFIKA HASZNÁLATA Rajzolni az awt csomag Graphics osztályának metódusaival tudunk. A java.awt.graphics osztály néhány metódusa: drawstring() drawrect() drawoval()

Részletesebben

DebitTray program Leírás

DebitTray program Leírás DebitTray program Leírás Budapest 2015 Bevezetés Egy-egy kintlévőséghez tartozó határidő elmulasztásának komoly következménye lehet. Éppen ezért a Kintlévőség kezelő program főmenü ablakában a program

Részletesebben

ContractTray program Leírás

ContractTray program Leírás ContractTray program Leírás Budapest 2015 Bevezetés Egy-egy szerződéshez tartozó határidő elmulasztásának komoly gazdasági következménye lehet. Éppen ezért a Szerződés kezelő program főmenü ablakában a

Részletesebben

VII. Appletek, grafika

VII. Appletek, grafika VII. Appletek, grafika 1. Bevezetés A tantárgy elején említettük, hogy a Java alkalmazásokat két nagy csoportba sorolhatjuk. Ezek: alkalmazások (applications) alkalmazáskák (applets) Az eddig megírt programjaink

Részletesebben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016 Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

Java felhasználói felület

Java felhasználói felület Java felhasználói felület Listák. Egyebek Elek Tibor JList Szerep: Egy vagy több elem kiválasztása véges számú (2-100) elemből. Fontosabb tudnivalók: - Lista elemek kezelése: ListModel - Kiválasztás kezelése:

Részletesebben

JAVA PROGRAMOZÁS 4.ELŐADÁS

JAVA PROGRAMOZÁS 4.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 4.ELŐADÁS 2014-2015 tavasz Kivételkezelés, Grafikus felhasználói felület 2 Kivételkezelés Rendszerhibák és kivételek 3 Programot leállító események:

Részletesebben

Lakóház tervezés ADT 3.3-al. Segédlet

Lakóház tervezés ADT 3.3-al. Segédlet Lakóház tervezés ADT 3.3-al Segédlet A lakóház tervezési gyakorlathoz főleg a Tervezés és a Dokumentáció menüket fogjuk használni az AutoDesk Architectural Desktop programból. A program centiméterben dolgozik!!!

Részletesebben

A Microsoft OFFICE. EXCEL táblázatkezelő. program alapjai. 2013-as verzió használatával

A Microsoft OFFICE. EXCEL táblázatkezelő. program alapjai. 2013-as verzió használatával A Microsoft OFFICE EXCEL táblázatkezelő program alapjai 2013-as verzió használatával A Microsoft Office programcsomag táblázatkezelő alkalmazása az EXCEL! Aktív táblázatok készítésére használjuk! Képletekkel,

Részletesebben

Alapvető beállítások elvégzése Normál nézet

Alapvető beállítások elvégzése Normál nézet Alapvető beállítások elvégzése Normál nézet A Normál nézet egy egyszerűsített oldalképet mutat. Ez a nézet a legalkalmasabb a szöveg beírására, szerkesztésére és az egyszerűbb formázásokra. Ebben a nézetben

Részletesebben

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak.

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak. Mappakezelés WINDOWS-7 A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak. A PC legnagyobb mappája, amely az összes többi mappát is magában foglalja,

Részletesebben

Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer

Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer Objektumok és osztályok Az objektumorientált programozás alapjai Rajzolás tollal, festés ecsettel A koordinátarendszer A vektorgrafikában az egyes grafikus elemeket (pontokat, szakaszokat, köröket, stb.)

Részletesebben

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor. Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb

Részletesebben

Grafikus felhasználói felület (GUI) létrehozása A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása

Grafikus felhasználói felület (GUI) létrehozása A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. MATLAB alapismeretek IX. A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása Alkalmazott Informatikai Intézeti

Részletesebben

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem http:www.johanyak.hu Analóg óra Készítsünk egy analóg órát megjelenítő alkalmazást. A feladat egy lehetséges megoldása a következő: 1. Az alkalmazás vázának automatikus generálása Fájl menü, New, Project

Részletesebben

Szoftvertechnolo gia gyakorlat

Szoftvertechnolo gia gyakorlat Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot

Részletesebben

Feladatok megoldásai

Feladatok megoldásai 1. Az oszlopszélességet az oszlopszegélyre való dupla kattintással állítsuk be! Mit tapasztalunk? Az oszlopszegélyre való dupla kattintáskor az Excel az oszlopban található leghosszabb bejegyzés hosszúsága

Részletesebben

Alapok (a K2D rendszer alapjai)

Alapok (a K2D rendszer alapjai) Alapok (a K2D rendszer alapjai) 1 1. Bevezetés... 3 2. Fastruktúra... 3 2.1. Nyitása, zárása... 3 2.2. Fülek... 5 2.3. Licence kulcs érvényesítése... 9 2.4. Új elem felvitele... 10 2.5. Elem törlése...

Részletesebben

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

E-Freight beállítási segédlet

E-Freight beállítási segédlet E-Freight beállítási segédlet Az E-Freight rendszer működéséhez szükséges programok és beállítások v08 A legújabb verzióért kérjük, olvassa be az alábbi kódot: 1. Támogatott böngészők Az E-Freight az Internet

Részletesebben

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Java Programozás 1. Gy: Java alapok. Ismétlés ++ Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk

Részletesebben

CÍMLISTA HASZNÁLATA. Címlista alapok

CÍMLISTA HASZNÁLATA. Címlista alapok CÍMLISTA HASZNÁLATA Címlista alapok Címlista elemnek hívunk minden személyt és céget amit a címlista modulban tárolunk. Két típusát különböztetjük meg: cég és személy. Személyekhez és a cégekhez különböző

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

Részletesebben

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović chole@vts.su.ac.rs Szabadkai Műszaki Szakfőiskola Web programozás dr Zlatko Čović chole@vts.su.ac.rs 1 DOM események (events) JavaScriptben interaktív programok készítésére az események által vezérelt programozási modellt

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

Az importálás folyamata Felhasználói dokumentáció verzió 2.1. Az importálás folyamata Felhasználói dokumentáció verzió 2.1. Budapest, 2008. Változáskezelés Verzió Dátum Változás Pont Cím Oldal 2.1. 2008.01.17. A teljes dokumentáció megváltozott Kiadás: 2008.01.17.

Részletesebben