1. Příklad uživatelského formuláře. Do formuláře je možné zadat celkem 4 různé typy údajů

Rozměr: px
Začít zobrazení ze stránky:

Download "1. Příklad uživatelského formuláře. Do formuláře je možné zadat celkem 4 různé typy údajů"

Transkript

1 Grafika 2D 1

2 Obsah 1. Příklad uživatelského formuláře 2. Úvod 3. Metody paint() repaint() 4. Práce s barvami 5. Práce s fonty 6. Správa fontů metriky fontů 7. Kresleníčar, obdélníků a oválů 8. Kreslení výsečí 9. Kreslení polygonů a lomených čar 10. Třída JTable 2

3 1. Příklad uživatelského formuláře Do formuláře je možné zadat celkem 4 různé typy údajů JList vybrat jméno ze seznamu (státu) JTextField jméno a JRadioButton indikace svobodný / ženatý, vdaný JTextArea oblast pro poznámky JButton tlačítka JPanel pro rozvržení komponent 3

4 Příklad uživatelského formuláře Třída MiscGUI implementuje rozhraní ActionListener pro svá tři tlačítka rozvržení okna: BorderLayout top, left, bottom oblasti jsou obsazeny s JPanel center komponenta JTextArea víceřádkový editor top - tlačítka: JPanel má rozvržení FlowLayout left JLabel, JList JPanel má rozvržení BoxLayout, JList zapouzdřuje tzv. výběrový model 4

5 Příklad uživatelského formuláře 5

6 Příklad uživatelského formuláře Bottom JTextFields a JRadioButton JPanel má rozvržení FlowLayout JTextField jméno, Center JTextArea textová oblast pro zápis komentáře 6

7 import javax.swing.*; import java.awt awt.*; import java.awt awt.event event.*; class MaceGUI extends JFrame implements ActionListener { private Container pane; private JPanel buttons, misc, stlist; private JList list; private JRadioButton married; private JTextField , name; private JTextArea reasons; //tridni atributy private final static String submit = " Submit "; private final static String clear = " Clear "; private final static String exit = " Exit "; private final static String promptn = "First and last name "; private final static String prompte = " address "; private final static String promptr = " My charisma needs enhancement because"; private final static String[ ] states = { "Illinois " Illinois", "Indiana" Indiana", "Iowa" Iowa", "Kansas", "Minnesota", "Michigan", "Missouri " Missouri", "Nebraska" Nebraska", "Ohio", "Wisconsin" Wisconsin" ; 7

8 public MaceGUI() { super( "Midwest " Association for Charisma Enhancement" ); pane = getcontentpane(); buttons = new JPanel( new FlowLayout() ); misc = new JPanel( new FlowLayout() ); stlist = new JPanel(); married = new JRadioButton( "Married" Married", false ); = new JTextField( prompte ); name = new JTextField( promptn ); reasons = new JTextArea( promptr ); list = new JList( states ); //** Midwest state names init(); setvisible( true ); setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); public void actionperformed( ActionEvent e ) { String cmd = e.getactioncommand getactioncommand(); if ( cmd.equals equals( submit ) ) submitform(); else if ( cmd.equals equals( clear ) ) clearform(); else if ( cmd.equals equals( exit ) ) System.exit( 0 ); 8

9 private void submitform() { String t = (list.getselectedvalue getselectedvalue() == null)? "none" none" : list.getselectedvalue getselectedvalue(). ().tostring tostring(); post( name.gettext gettext(), .gettext gettext(), t, (married married.isselected isselected())? "married" married" : "not maried", reasons.gettext gettext() ); private void clearform() { reasons.settext settext( promptr ); name.settext settext( promptn ); .settext settext( prompte ); married.setselected setselected( false ); list.getselectionmodel getselectionmodel(). ().clearselection clearselection(); //*** For now, a stub function that prints to the standard error. private void post( String n, String e, String s, String m, String r ) { System.err err.println println( n + " " + e + " " + s + "\n"" + m + "\n"" + r ); private void init() { JLabel j; Font f = null; pane.setlayout setlayout( new BorderLayout() ); buttons.setbackground setbackground( Color.gray ); .setfont setfont( f = new Font( "Dialog", Font.BOLD, 12 ) ); name.setfont setfont( f ); reasons.setfont setfont( f ); 9

10 reasons.setlinewrap setlinewrap( true ); misc.add add( name ); misc.add add( ); misc.add add( married ); list.setfont setfont( f ); list.setbackground setbackground( Color.cyan ); list.getselectionmodel getselectionmodel(). ().setselectionmode setselectionmode( ListSelectionModel.SINGLE_SELECTION ); stlist.setlayout setlayout( new BoxLayout( stlist, BoxLayout.Y_AXIS ) ); stlist.add add( j = new JLabel( "Home" state " ) ); j.setfont setfont( f ); j.setforeground setforeground( Color.black ); stlist.add add( list ); addbutton( submit ); addbutton( clear ); addbutton( exit ); pane.add add( buttons, BorderLayout.NORTH ); pane.add add( reasons, BorderLayout.CENTER ); pane.add add( stlist, BorderLayout.WEST ); pane.add add( misc, BorderLayout.SOUTH ); pack(); private void addbutton( String name ) { JButton b = new JButton( name ); b.setfont setfont( new Font( "Dialog", Font.BOLD, 14 ) ); b.addactionlistener addactionlistener( this ); buttons.add add( b ); 10

11 class MaceGUITester { public static void main( String[ ] args ) { new MaceGUI(); 11

12 2. Úvod Třídy a rozhraní 2D grafiky Object Color Component Font FontMetrics Graphics Polygon Classes and interfaces from the Java2D API that appear in package java.awt Graphics2D BasicStroke GradientPaint TexturePaint Classes from the Java2D API that appear in package java.awt.geom GeneralPath Line2D RectangularShape Arc2D Ellipse2D Rectangle2D RoundRectangle2D interface java.awt.paint interface java.awt.shape interface java.awt.stroke 12

13 Úvod Souřadnicový systém Javy Schéma pro identifikaci všech bodů na obrazovce Levý horní roh - souřadnice (0,0) Bod složen z x a y souřadnice 13

14 Systém souřadnic měří se v pixlech (0, 0) +x X a xis (x, y ) +y Y a xis 14

15 3. Metody Paint() Repaint() Když se má komponenta poprvé objevit v okně, musí být nakreslena metoda paint() Metoda paint() je součástí třídy Component ta očekává argument typu Graphics Abstraktním třída Graphics je nadtřídou pro třídy grafického kontextu mají informace pro kreslení Později požadavek na znovu nakreslení komponenty (repaint()) např. drawstring() řetězec může být překreslen jiným řetězcem 15

16 Metody Paint() Repaint() Programátor může při repaint() opět zavolat metodu paint(), ale: metoda repaint() neočekává žádné argumenty a volá metodu update() s odpovídajícím grafickým kontextem a metoda update() volá metodu paint() každá komponenta má dvojici metod validate(), invalidate() jenž mohou být vyvolány, k zabezpečení změn ve vlastnostech (atributech) komponenty viz následující příklad metoda actionperformed() 16

17 import javax.swing.*; import java.awt awt.*; import java.awt awt.event event.*; class OneButton extends JFrame { private Container c; private JButton b; private String msg1, msg2, displayedmsg; private Color fillcolor = Color.white white; private boolean toggle; private Font f; private int count; public OneButton() { super( "Repaint Example" ); c = getcontentpane(); displayedmsg = msg1 = "Hello" Hello, world!"; msg2 = "What " What, me worry?"; b = new JButton( " Toggle " ); b.addactionlistener addactionlistener( new ActionListener() { public void actionperformed( ActionEvent e ) { displayedmsg = (toggle( toggle)? msg1 : msg2; fillcolor = (toggle( toggle)? Color.white : Color.cyan cyan; toggle =!toggle! toggle; repaint(); // vyvola update, coz vyvola paint if(++ (++count > 4){ c.add add(new JLabel(" ("Wow Wow!")); c.validate validate(); count = 0; ); 17

18 c.setlayout setlayout( new FlowLayout() ); c.add add( b ); setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); c.setfont setfont( f = new Font( "Dialog", Font.BOLD, 14 ) ); setsize( 300, 200 ); setvisible( true ); public void paint( Graphics g ) { super.paint paint( g ); // vymaze pane g.draw3drect( 50, 70, 150, 70, true ); g.setcolor setcolor( fillcolor ); g.fill3drect( 50, 70, 150, 70, true ); g.setcolor setcolor( Color.black ); g.setfont setfont( f ); g.drawstring drawstring( displayedmsg, 70, 100 ); 18

19 class OneButtonTester { public static void main( String[ ] args ) { new OneButton(); 19

20 Metoda validate() Poté co je přidaný JLabel objekt do kontejneru, metoda kontejneru validate() zabezpečí, že nově přidaný objekt návěští je uspořádán a zobrazen správným způsobem. Metoda invalidate() signalizuje, že se nějakým způsobem změnila komponenta, což má dopad na zobrazení. Např. font tlačítka se zvětšil a text již nevejde do vymezeného prostoru indikace že je nutné překreslení. Metoda invalidate() je obyčejně volána automaticky, když mají změny dopad na zobrazení 20

21 Třída Color 4. Práce s barvami Definuje metody a konstanty pro práci s barvami Barvy jsou tvořeny komponentami red, green a blue RGB hodnoty 21

22 Grafické konstanty a jejich RGB hodnoty Color konstanty Color RGB hodnota public final static Color ORANGE orange 255, 200, 0 public final static Color PINK pink 255, 175, 175 public final static Color CYAN cyan 0, 255, 255 public final static Color MAGENTA magenta 255, 0, 255 public final static Color YELLOW yellow 255, 255, 0 public final static Color BLACK black 0, 0, 0 public final static Color WHITE white 255, 255, 255 public final static Color GRAY gray 128, 128, 128 public final static Color LIGHT_GRAY light gray 192, 192, 192 public final static Color DARK_GRAY dark gray 64, 64, 64 public final static Color RED red 255, 0, 0 public final static Color GREEN green 0, 255, 0 public final static Color BLUE blue 0, 0,

23 Metody Popis Konstanty Color a metody Metody třídy Color public Color( int r, int g, int b ) public Color( float r, float g, float b ) public int getred() public int getgreen() public int getblue() Vytvoří barvu (Color) založenou na komponentách red, green a blue vyjádřené jako celé číslo v rozsahu od 0 do 255. Vytvoří barvu založenou na komponentách red, green a blue vyjádřené jako floating-point hodnoty od 0.0 do 1.0. Vrací hodnotu mezi 0 a 255 reprezentující obsah červené. Vrací hodnotu mezi 0 a 255 reprezentující obsah zelené. Vrací hodnotu mezi 0 a 255 reprezentující obsah modré. Methody Graphics pro práci s Colors public Color getcolor() public void setcolor( Color c ) Vrací objekt třídy Color reprezentující aktuální barvu pro grafický kontext. Nastavuje aktuální barvu pro kresleni s grafickým kontextem. 23

24 // Demonstrating Colors. package graf_06; import java.awt awt.graphics Graphics; import java.awt awt.color Color; import javax.swing..swing.jpanel JPanel; public class ColorJPanel extends JPanel { // draw rectangles and Strings in different colors public void paintcomponent( Graphics g ) { super.paintcomponent paintcomponent( g ); // call superclass's paintcomponent this.setbackground setbackground( Color.WHITE ); // set new drawing color using integers g.setcolor setcolor( new Color( 255, 0, 0 ) ); g.fillrect fillrect( 15, 25, 100, 20 ); g.drawstring drawstring( "Current" RGB: " + g.getcolor getcolor(), 130, 40 ); // set new drawing color using floats g.setcolor setcolor( new Color( 0.50f, 0.75f, 0.0f ) ); g.fillrect fillrect( 15, 50, 100, 20 ); g.drawstring drawstring( "Current" RGB: " + g.getcolor getcolor(), 130, 65 ); // set new drawing color using static Color objects g.setcolor setcolor( Color.BLUE ); g.fillrect fillrect( 15, 75, 100, 20 ); g.drawstring drawstring( "Current" RGB: " + g.getcolor getcolor(), 130, 90 ); 24

25 // display individual RGB values Color color = Color.MAGENTA; g.setcolor setcolor( color ); g.fillrect fillrect( 15, 100, 100, 20 ); g.drawstring drawstring( "RGB values: " + color.getred getred() + ", " + color.getgreen getgreen() + ", " + color.getblue getblue(), 130, 115 ); // end method paintcomponent // end class ColorJPanel 25

26 // Demonstrating Colors. package graf_06; import javax.swing..swing.jframe JFrame; public class ShowColors { // execute application public static void main( String args[] ) { // create frame for ColorJPanel JFrame frame = new JFrame( "Using" colors" ); frame.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); ColorJPanel colorjpanel = new ColorJPanel(); // create ColorJPanel frame.add add( colorjpanel ); // add colorjpanel to frame frame.setsize setsize( 400, 180 ); // set frame size frame.setvisible setvisible( true ); // display frame // end main // end class ShowColors 26

27 import javax.swing.*; import java.awt awt.event event.*; import java.awt awt.*; class ColorMenuEx extends JFrame implements ActionListener { private JMenuBar menubar; private JMenu colormenu; private JMenu controlmenu; private static final Color orig = Color.white white; private static final String[ ] colornames = { "Blue " Blue", "Cyan" Cyan", "Gray" Gray", "Orange" Orange", "Pink" ; private static final Color[ ] colors = { Color.blue blue, Color.cyan cyan, Color.gray gray, Color.orange orange, Color.pink ; private static final String[ ] controls = { "Restore" Restore", "Exit" ; public ColorMenuEx() { menubar = new JMenuBar(); colormenu = new JMenu( "Colors" Colors" ); controlmenu = new JMenu( "Control" Control" ); init(); setsize( 300, 150 ); getcontentpane(). ().setbackground setbackground( orig ); setvisible( true ); Jednoduchý příklad využívající barev 27

28 public void actionperformed( ActionEvent e ) { String s = e.getactioncommand getactioncommand(); if ( s.equals equals( "Exit" ) ) System.exit( 0 ); else if ( s.equals equals( "Restore" Restore" ) ) getcontentpane(). ().setbackground setbackground( orig ); else setcolor( s ); private void init() { initmenu( colormenu, colornames ); initmenu( controlmenu, controls ); menubar.add add( colormenu ); menubar.add add( controlmenu ); setjmenubar( menubar ); private void initmenu( JMenu menu, String[ ] items ) { for ( int i = 0; i < items.length length; i++ ) { JMenuItem item = new JMenuItem( items[ i ] ); item.addactionlistener addactionlistener( this ); menu.add add( item ); private void setcolor( String c ) { for ( int i = 0; i < colornames.length length; i++ ) if ( c.equals equals( colornames[ i ] ) ) { getcontentpane(). ().setbackground setbackground( colors[ i ] ); break; 28

29 class ColorMenuExTester { public static void main( String[ ] args ) { new ColorMenuEx(); 29

30 // Choosing colors with JColorChooser. package graf_08; import java.awt awt.borderlayout BorderLayout; import java.awt awt.color Color; import java.awt awt.event event.actionevent ActionEvent; import java.awt awt.event event.actionlistener ActionListener; import javax.swing..swing.jbutton JButton; import javax.swing..swing.jframe JFrame; import javax.swing..swing.jcolorchooser JColorChooser; import javax.swing..swing.jpanel JPanel; Příklad umožňující výběr barev public class ShowColors2JFrame extends JFrame { private JButton changecolorjbutton; private Color color = Color.LIGHT_GRAY; private JPanel colorjpanel; // set up GUI public ShowColors2JFrame() { super( "Using " JColorChooser" ); // create JPanel for display color colorjpanel = new JPanel(); colorjpanel.setbackground setbackground( color ); // set up changecolorjbutton and register its event handler changecolorjbutton = new JButton( "Change" Color" ); changecolorjbutton.addactionlistener addactionlistener( 30

31 new ActionListener() // anonymni vnitrni trida { // display JColorChooser when user clicks button public void actionperformed( ActionEvent event ) { color = JColorChooser.showDialog showdialog( ShowColors2JFrame.this this, "Choose" a color", color ); // set default color, if no color is returned if ( color == null ) color = Color.LIGHT_GRAY; // change content pane's background color colorjpanel.setbackground setbackground( color ); // end method actionperformed // end anonymous inner class ); // end call to addactionlistener add( colorjpanel, BorderLayout.CENTER ); // add colorjpanel add( changecolorjbutton, BorderLayout.SOUTH ); // add button setsize( 400, 130 ); // set frame size setvisible( true ); // display frame // end ShowColor2JFrame constructor // end class ShowColors2JFrame 31

32 // Choosing colors with JColorChooser. package graf_08; import javax.swing..swing.jframe JFrame; public class ShowColors2 { // execute application public static void main( String args[] ) { ShowColors2JFrame application = new ShowColors2JFrame(); application.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); // end main // end class ShowColors2 32

33 33

34 Výsledky aplikace 34

35 5. Práce s fonty Třída Font Obsahuje metody a konstanty pro práci s fonty Konstruktor třídy Font potřebuje tři argumenty Jméno Fontu Monospaced, SansSerif, Serif, etc. Styl Fontu Font.PLAIN, Font.ITALIC and Font.BOLD Velikost Font Měřeno v bodech (1/72 of inch) 35

36 Metody a konstanty třídy Font Metody nebo konstanty Popis Konstanty Font, konstruktory a metody pro kreslení polygonů public final static int PLAIN public final static int BOLD public final static int ITALIC Konstanta reprezentující a plain font style. Konstanta reprezentující a bold font style. Konstanta reprezentující an italic font style. public Font( String name, int style, int size ) Vytvoří objekt třídy Font se specifikovaným fontem, stylem a velikostí. public int getstyle() public int getsize() public String getname() public String getfamily() public boolean isplain() public boolean isbold() public boolean isitalic() Vrací celočíselnou hodnotu indikující aktuální styl fontu. Vrací celočíselnou hodnotu indikující aktuální velikost fontu. Vrací aktuální jméno fontu jako řetězec. Vrací font s family name jako řetězec. Testuje font na plain font styl. Testuje font na a bold font styl. Testuje font na an italic font styl. 36

37 Metody a konstanty třídy Font Metody nebo konstanty Popis Methods Graphics pro práci s fonty public Font getfont() public void setfont( Font f ) Vrací objekt třídy Font reprezentující aktuální font. Nastaví aktuální font na font, styl a velikost specifikované v proměnné f. 37

38 // Display strings in different fonts and colors. package graf_12; import java.awt awt.font; import java.awt awt.color Color; import java.awt awt.graphics Graphics; import javax.swing..swing.jpanel JPanel; Demonstrace využití třídy Font public class FontJPanel extends JPanel { // display Strings in different fonts and colors public void paintcomponent( Graphics g ) { super.paintcomponent paintcomponent( g ); // call superclass's paintconponent // set font to Serif (Times Times), bold, 12pt and draw a string g.setfont setfont( new Font( "Serif" Serif", Font.BOLD, 12 ) ); g.drawstring drawstring( "Serif" 12 point bold.", 20, 50 ); // set font to Monospaced (Courier Courier), italic, 24pt and draw a string g.setfont setfont( new Font( "Monospaced" Monospaced", Font.ITALIC, 24 ) ); g.drawstring drawstring( "Monospaced" 24 point italic.", 20, 70 ); // set font to SansSerif (Helvetica Helvetica), plain, 14pt and draw a string g.setfont setfont( new Font( "SansSerif" SansSerif", Font.PLAIN, 14 ) ); g.drawstring drawstring( "SansSerif" 14 point plain.", 20, 90 ); 38

39 // set font to Serif (Times Times), bold/italic italic, 18pt and draw a string g.setcolor setcolor( Color.RED ); g.setfont setfont( new Font( "Serif" Serif", Font.BOLD + Font.ITALIC, 18 ) ); g.drawstring drawstring( g.getfont getfont(). ().getname getname() + " " + g.getfont getfont(). ().getsize getsize() + " point bold italic.", 20, 110 ); // end method paintcomponent // end class FontJPanel 39

40 // Using fonts. package graf_12; import javax.swing..swing.jframe JFrame; public class Fonts { // execute application public static void main( String args[] ) { // create frame for FontJPanel JFrame frame = new JFrame( "Using" fonts" ); frame.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); FontJPanel fontjpanel = new FontJPanel(); // create FontJPanel frame.add add( fontjpanel ); // add fontjpanel to frame frame.setsize setsize( 420, 170 ); // set frame size frame.setvisible setvisible( true ); // display frame // end main // end class Fonts 40

41 6. Správa fontů metriky fontů Metriky fontů Height Descent (amount character dips below baseline) Ascent (amount character rises above baseline) Leading (difference between descent and ascent) 41

42 Metriky fontů he ight Xy1İ asc le ading e nt ba seline desc ent 42

43 Metody tříd FontMetrics a Graphics získání metrik fontů Method Description FontMetrics methods public int getascent() Returns a value representing the ascent of a font in points. public int getdescent() Returns a value representing the descent of a font in points. public int getleading() Returns a value representing the leading of a font in points. public int getheight() Returns a value representing the height of a font in points. Graphics methods for getting a Font s FontMetrics public FontMetrics getfontmetrics() Returns the FontMetrics object for the current drawing Font. public FontMetrics getfontmetrics( Font f ) Returns the FontMetrics object for the specified Font argument. 43

44 // FontMetrics and Graphics methods useful for obtaining font metrics. package graf_16; import java.awt awt.font; import java.awt awt.fontmetrics FontMetrics; import java.awt awt.graphics Graphics; import javax.swing..swing.jpanel JPanel; public class MetricsJPanel extends JPanel { // display font metrics public void paintcomponent( Graphics g ) { super.paintcomponent paintcomponent( g ); // call superclass's paintcomponent g.setfont setfont( new Font( "SansSerif" SansSerif", Font.BOLD, 12 ) ); FontMetrics metrics = g.getfontmetrics getfontmetrics(); g.drawstring drawstring( "Current" font: " + g.getfont getfont(), 10, 40 ); g.drawstring drawstring( "Ascent" Ascent: " + metrics.getascent getascent(), 10, 55 ); g.drawstring drawstring( "Descent" Descent: " + metrics.getdescent getdescent(), 10, 70 ); g.drawstring drawstring( "Height" Height: " + metrics.getheight getheight(), 10, 85 ); g.drawstring drawstring( "Leading" Leading: " + metrics.getleading getleading(), 10, 100 ); Font font = new Font( "Serif" Serif", Font.ITALIC, 14 ); metrics = g.getfontmetrics getfontmetrics( font ); 44

45 g.setfont setfont( font ); g.drawstring drawstring( "Current" font: " + font, 10, 130 ); g.drawstring drawstring( "Ascent" Ascent: " + metrics.getascent getascent(), 10, 145 ); g.drawstring drawstring( "Descent" Descent: " + metrics.getdescent getdescent(), 10, 160 ); g.drawstring drawstring( "Height" Height: " + metrics.getheight getheight(), 10, 175 ); g.drawstring drawstring( "Leading" Leading: " + metrics.getleading getleading(), 10, 190 ); // end method paintcomponent 45

46 import javax.swing..swing.jframe JFrame; public class Metrics { // execute application public static void main( String args[] ) { // create frame for MetricsJPanel JFrame frame = new JFrame( "Demonstrating" FontMetrics" ); frame.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); MetricsJPanel metricsjpanel = new MetricsJPanel(); frame.add add( metricsjpanel ); // add metricsjpanel to frame frame.setsize setsize( 510, 250 ); // set frame size frame.setvisible setvisible( true ); // display frame // end main // end class Metrics 46

47 7. Kresleníčar, obdelníků a oválů TřídaGraphics Poskytuje metody pro kresleníčar, obdelníků a oválů Všechny metody kreslení vyžadují parametrywidth a height 47

48 Metody třídy Graphics pro kresleníčar, obdélníků a oválů Method Description public void drawline( int x1, int y1, int x2, int y2 ) Draws a line between the point (x1, y1) and the point (x2, y2). public void drawrect( int x, int y, int width, int height ) Draws a rectangle of the specified width and height. The top-left corner of the rectangle has the coordinates (x, y). public void fillrect( int x, int y, int width, int height ) Draws a solid rectangle with the specified width and height. The top-left corner of the rectangle has the coordinate (x, y). public void clearrect( int x, int y, int width, int height ) Draws a solid rectangle with the specified width and height in the current background color. The top-left corner of the rectangle has the coordinate (x, y). public void drawroundrect( int x, int y, int width, int height, int arcwidth, int archeight ) Draws a rectangle with rounded corners in the current color with the specified width and height. The arcwidth and archeight determine the rounding of the corners (see Fig ). public void fillroundrect( int x, int y, int width, int height, int arcwidth, int archeight ) Draws a solid rectangle with rounded corners in the current color with the specified width and height. The arcwidth and archeight determine the rounding of the corners (see Fig ). 48

49 Metody třídy Graphics pro kresleníčar, obdélníků a oválů Method Description public void draw3drect( int x, int y, int width, int height, boolean b ) Draws a three-dimensional rectangle in the current color with the specified width and height. The top-left corner of the rectangle has the coordinates (x, y). The rectangle appears raised when b is true and lowered when b is false. public void fill3drect( int x, int y, int width, int height, boolean b ) Draws a filled three-dimensional rectangle in the current color with the specified width and height. The top-left corner of the rectangle has the coordinates (x, y). The rectangle appears raised when b is true and lowered when b is false. public void drawoval( int x, int y, int width, int height ) Draws an oval in the current color with the specified width and height. The bounding rectangle s top-left corner is at the coordinates (x, y). The oval touches all four sides of the bounding rectangle at the center of each side (see Fig ). public void filloval( int x, int y, int width, int height ) Draws a filled oval in the current color with the specified width and height. The bounding rectangle s top-left corner is at the coordinates (x, y). The oval touches all four sides of the bounding rectangle at the center of each side (see Fig ). 49

50 package graf_19; import java.awt awt.color Color; import java.awt awt.graphics Graphics; import javax.swing..swing.jpanel JPanel; public class LinesRectsOvalsJPanel extends JPanel { // display various lines, rectangles and ovals public void paintcomponent( Graphics g ) { super.paintcomponent paintcomponent( g ); // call superclass's paint method this.setbackground setbackground( Color.WHITE ); g.setcolor setcolor( Color.RED ); g.drawline drawline( 5, 30, 380, 30 ); g.setcolor setcolor( Color.BLUE ); g.drawrect drawrect( 5, 40, 90, 55 ); g.fillrect fillrect( 100, 40, 90, 55 ); g.setcolor setcolor( Color.BLACK ); g.fillroundrect fillroundrect( 195, 40, 90, 55, 50, 50 ); g.drawroundrect drawroundrect( 290, 40, 90, 55, 20, 20 ); 50

51 g.setcolor setcolor( Color.YELLOW ); g.draw3drect( 5, 100, 90, 55, true ); g.fill3drect( 100, 100, 90, 55, false ); g.setcolor setcolor( Color.MAGENTA ); g.drawoval drawoval( 195, 100, 90, 55 ); g.filloval filloval( 290, 100, 90, 55 ); // end method paintcomponent 51

52 import java.awt awt.color Color; import javax.swing..swing.jframe JFrame; public class LinesRectsOvals { // execute application public static void main( String args[] ) { // create frame for LinesRectsOvalsJPanel JFrame frame = new JFrame( "Drawing" lines, rectangles and ovals" ); frame.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); LinesRectsOvalsJPanel linesrectsovalsjpanel = new LinesRectsOvalsJPanel(); linesrectsovalsjpanel.setbackground setbackground( Color.WHITE ); frame.add add( linesrectsovalsjpanel ); // add panel to frame frame.setsize setsize( 400, 210 ); // set frame size frame.setvisible setvisible( true ); // display frame // end main // end class LinesRectsOvals 52

53 Šířka a výška oblouku pro zaoblené obdélníky (x, y) arc height a rc width height w idth 53

54 Oval ohraničený obdélníkem (x, y ) height w id th 54

55 Arc - oblouk část tvoří ovál 8. Kreslení oblouků - výsečí měří se ve stupních Sweeps počet stupňů v obloukovém úhlu (arc angle) Sweep začíná u počátečního úhlu Counterclockwise sweep je měřen v kladných stupních Clockwise sweep je měřen v záporných stupních 55

56 Kladné a záporné úhly oblouku Kladné úhly 90 Záporné úhly

57 Metody třídy Graphics pro kreslení oblouků Method Description public void drawarc( int x, int y, int width, int height, int startangle, int arcangle ) Draws an arc relative to the bounding rectangle s top-left coordinates (x, y) with the specified width and height. The arc segment is drawn starting at startangle and sweeps arcangle degrees. public void fillarc( int x, int y, int width, int height, int startangle, int arcangle ) Draws a solid arc (i.e., a sector) relative to the bounding rectangle s top-left coordinates (x, y) with the specified width and height. The arc segment is drawn starting at startangle and sweeps arcangle degrees. 57

58 import java.awt awt.color Color; import java.awt awt.graphics Graphics; import javax.swing..swing.jpanel JPanel; public class ArcsJPanel extends JPanel { // draw rectangles and arcs public void paintcomponent( Graphics g ) { super.paintcomponent paintcomponent( g ); // call superclass's paintcomponent // start at 0 and sweep 360 degrees g.setcolor setcolor( Color.RED ); g.drawrect drawrect( 15, 35, 80, 80 ); g.setcolor setcolor( Color.BLACK ); g.drawarc drawarc( 15, 35, 80, 80, 0, 360 ); // start at 0 and sweep 110 degrees g.setcolor setcolor( Color.RED ); g.drawrect drawrect( 100, 35, 80, 80 ); g.setcolor setcolor( Color.BLACK ); g.drawarc drawarc( 100, 35, 80, 80, 0, 110 ); 58

59 // start at 0 and sweep -270 degrees g.setcolor setcolor( Color.RED ); g.drawrect drawrect( 185, 35, 80, 80 ); g.setcolor setcolor( Color.BLACK ); g.drawarc drawarc( 185, 35, 80, 80, 0, -270 ); // start at 0 and sweep 360 degrees g.fillarc fillarc( 15, 120, 80, 40, 0, 360 ); // start at 270 and sweep -90 degrees g.fillarc fillarc( 100, 120, 80, 40, 270, -90 ); // start at 0 and sweep -270 degrees g.fillarc fillarc( 185, 120, 80, 40, 0, -270 ); // end method paintcomponent // end class ArcsJPanel 59

60 import javax.swing..swing.jframe JFrame; public class DrawArcs { // execute application public static void main( String args[] ) { // create frame for ArcsJPanel JFrame frame = new JFrame( "Drawing" Arcs" ); frame.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); ArcsJPanel arcsjpanel = new ArcsJPanel(); // create ArcsJPanel frame.add add( arcsjpanel ); // add arcsjpanel to frame frame.setsize setsize( 300, 210 ); // set frame size frame.setvisible setvisible( true ); // display frame // end main // end class DrawArcs 60

61 9. Kreslení polygonů a lomených čar Polygons and Polylines TřídaPolygon Polygons Vícestranné tvary (multisided shapes) Polylines Řada spojených bodů 61

62 Metody třídy Graphics pro kreslení polygonů a statické metody třídy Polygon Metody Popis Metody třídy Graphics pro kreslení polygonů public void drawpolygon( int xpoints[], int ypoints[], int points ) Nakreslí polygon. x-souřadnice každého bodu jsou specifikovány v poli xpoints, obdobně y-souřadnice. Poslední argument specifikuje počet bodů.. Metoda kreslí uzavřený polygon. Pokud se poslední a první bod liší, pak oba body spojí čára. public void drawpolyline( int xpoints[], int ypoints[], int points ) Draws a sequence of connected lines. The x-coordinate of each point is specified in the xpoints array and the y-coordinate of each point is specified in the ypoints array. The last argument specifies the number of points. If the last point is different from the first point, the polyline is not closed. public void drawpolygon( Polygon p ) Draws the specified polygon. public void fillpolygon( int xpoints[], int ypoints[], int points ) Draws a solid polygon. The x-coordinate of each point is specified in the xpoints array and the y-coordinate of each point is specified in the ypoints array. The last argument specifies the number of points. This method draws a closed polygon. If the last point is different from the first point, the polygon is closed by a line that connects the last point to the first point. public void fillpolygon( Polygon p ) Draws the specified solid polygon. The polygon is closed. 62

63 Metody třídy Graphics pro kreslení polygonů a statické metody třídy Polygon Method Description Polygon constructors and methods public Polygon() Constructs a new polygon object. The polygon does not contain any points. public Polygon( int xvalues[], int yvalues[], int numberofpoints ) Constructs a new polygon object. The polygon has numberofpoints sides, with each point consisting of an x-coordinate from xvalues and a y-coordinate from yvalues. public void addpoint( int x, int y ) Adds pairs of x- and y-coordinates to the Polygon. 63

64 import java.awt awt.graphics Graphics; import java.awt awt.polygon; import javax.swing..swing.jpanel JPanel; public class PolygonsJPanel extends JPanel { // draw polygons and polylines public void paintcomponent( Graphics g ) { super.paintcomponent paintcomponent( g ); // call superclass's paintcomponent // draw polygon with Polygon object int xvalues[] = { 20, 40, 50, 30, 20, 15 ; int yvalues[] = { 50, 50, 60, 80, 80, 60 ; Polygon polygon1 = new Polygon( xvalues, yvalues, 6 ); g.drawpolygon drawpolygon( polygon1 ); // draw polylines with two arrays int xvalues2[] = { 70, 90, 100, 80, 70, 65, 60 ; int yvalues2[] = { 100, 100, 110, 110, 130, 110, 90 ; g.drawpolyline drawpolyline( xvalues2, yvalues2, 7 ); // fill polygon with two arrays int xvalues3[] = { 120, 140, 150, 190 ; int yvalues3[] = { 40, 70, 80, 60 ; g.fillpolygon fillpolygon( xvalues3, yvalues3, 4 ); 64

65 // draw filled polygon with Polygon object Polygon polygon2 = new Polygon(); polygon2.addpoint addpoint( 165, 135 ); polygon2.addpoint addpoint( 175, 150 ); polygon2.addpoint addpoint( 270, 200 ); polygon2.addpoint addpoint( 200, 220 ); polygon2.addpoint addpoint( 130, 180 ); g.fillpolygon fillpolygon( polygon2 ); // end method paintcomponent // end class PolygonsJPanel 65

66 import javax.swing..swing.jframe JFrame; public class DrawPolygons { // execute application public static void main( String args[] ) { // create frame for PolygonsJPanel JFrame frame = new JFrame( "Drawing" Polygons" ); frame.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); PolygonsJPanel polygonsjpanel = new PolygonsJPanel(); frame.add add( polygonsjpanel ); // add polygonsjpanel to frame frame.setsize setsize( 280, 270 ); // set frame size frame.setvisible setvisible( true ); // display frame // end main 66

67 import java.awt awt.color Color; import java.awt awt.graphics Graphics; import java.awt awt.basicstroke BasicStroke; import java.awt awt.gradientpaint GradientPaint; import java.awt awt.texturepaint TexturePaint; import java.awt awt.rectangle Rectangle; import java.awt awt.graphics2d; import java.awt awt.geom geom.ellipse2d; import java.awt awt.geom geom.rectangle2d; import java.awt awt.geom geom.roundrectangle2d; import java.awt awt.geom geom.arc2d; import java.awt awt.geom geom.line2d; import java.awt awt.image image.bufferedimage BufferedImage; import javax.swing..swing.jpanel JPanel; Kreslení komplexních tvarů public class ShapesJPanel extends JPanel { // draw shapes with Java 2D API public void paintcomponent( Graphics g ) { super.paintcomponent paintcomponent( g ); // call superclass's paintcomponent Graphics2D g2d = ( Graphics2D ) g; // cast g to Graphics2D // draw 2D ellipse filled with a blue-yellow gradient g2d.setpaint setpaint( new GradientPaint( 5, 30, Color.BLUE, 35, 100, Color.YELLOW, true ) ); g2d.fill fill( new Ellipse2D.Double( 5, 30, 65, 100 ) ); 67

68 // draw 2D rectangle in red g2d.setpaint setpaint( Color.RED ); g2d.setstroke setstroke( new BasicStroke( 10.0f ) ); g2d.draw draw( new Rectangle2D.Double( 80, 30, 65, 100 ) ); // draw 2D rounded rectangle with a buffered background BufferedImage buffimage = new BufferedImage( 10, 10, BufferedImage.TYPE_INT_RGB ); // obtain Graphics2D from bufferimage and draw on it Graphics2D gg = buffimage.creategraphics creategraphics(); gg.setcolor setcolor( Color.YELLOW ); // draw in yellow gg.fillrect fillrect( 0, 0, 10, 10 ); // draw a filled rectangle gg.setcolor setcolor( Color.BLACK ); // draw in black gg.drawrect drawrect( 1, 1, 6, 6 ); // draw a rectangle gg.setcolor setcolor( Color.BLUE ); // draw in blue gg.fillrect fillrect( 1, 1, 3, 3 ); // draw a filled rectangle gg.setcolor setcolor( Color.RED ); // draw in red gg.fillrect fillrect( 4, 4, 3, 3 ); // draw a filled rectangle // paint buffimage onto the JFrame g2d.setpaint setpaint( new TexturePaint( buffimage, new Rectangle( 10, 10 ) ) ); g2d.fill fill( new RoundRectangle2D.Double( 155, 30, 75, 100, 50, 50 ) ); 68

69 // draw 2D pie-shaped arc in white g2d.setpaint setpaint( Color.WHITE ); g2d.setstroke setstroke( new BasicStroke( 6.0f ) ); g2d.draw draw( new Arc2D.Double( 240, 30, 75, 100, 0, 270, Arc2D.PIE ) ); // draw 2D lines in green and yellow g2d.setpaint setpaint( Color.GREEN ); g2d.draw draw( new Line2D.Double( 395, 30, 320, 150 ) ); // draw 2D line using stroke float dashes[] = { 10 ; // specify dash pattern g2d.setpaint setpaint( Color.YELLOW ); g2d.setstroke setstroke( new BasicStroke( 4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 10, dashes, 0 ) ); g2d.draw draw( new Line2D.Double( 320, 30, 395, 150 ) ); // end method paintcomponent // end class ShapesJPanel 69

70 import javax.swing..swing.jframe JFrame; public class Shapes { // execute application public static void main( String args[] ) { // create frame for ShapesJPanel JFrame frame = new JFrame( "Drawing" 2D shapes" ); frame.setdefaultcloseoperation setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); // create ShapesJPanel ShapesJPanel shapesjpanel = new ShapesJPanel(); frame.add add( shapesjpanel ); // add shapesjpanel to frame frame.setsize setsize( 425, 200 ); // set frame size frame.setvisible setvisible( true ); // display frame // end main // end class Shapes 70

71 10. Třída JTable Celá aplikace používá třídu javax.swing.jtable která zobrazí data v dvourozměrné tabulce JTable využívá architekturu MVC (model view controller) a uživatel může využít DefaultTableModel pokud nechce dělat úpravy Aplikace vytváří DefaultTableModel s 11 sloupci 71

72 import java.util util.*; import java.awt awt.*; import java.awt awt.event event.*; import javax.swing.*; import javax.swing.table.*; public class EmpGUI extends JFrame { //*** instance fields private Container cont; private JTable table; private DefaultTableModel dm; private EmpRW emprw; private String infilename; private String outfilename; //*** class fields private static final String readstring = " Read File "; private static final String writestring = " Write File "; private static final String exitstring = " Exit "; //** Construct the GUI, including controls and a JTable, // and display the GUI automatically. // Syntax: new EmpGUI() public EmpGUI() { super( "Employee " Edit Application" ); setsize( 900, 350 ); cont = getcontentpane(); initcontrols(); inittable(); setvisible(true true); 72

73 //** Add buttons to read, write, and exit. // Add action listeners per button. private void initcontrols() { JButton b; JPanel controls = new JPanel(); controls.setlayout setlayout( new FlowLayout() ); b = addbutton( controls, readstring ); b.addactionlistener addactionlistener( new ActionListener() { public void actionperformed( ActionEvent e ) { read(); ); b = addbutton( controls, writestring ); b.addactionlistener addactionlistener( new ActionListener() { public void actionperformed( ActionEvent e ) { write(); ); b = addbutton( controls, exitstring ); b.addactionlistener addactionlistener( new ActionListener() { public void actionperformed( ActionEvent e ) { System.exit( 0 ); ); cont.add add( controls, BorderLayout.NORTH ); 73

74 //** Create an empty JTable to hold the employee records private void inittable() { String[ ] cols = { "CODE", "ID", "LNAME", "FNAME", "DEPT", "TITLE", "RPTS", "DISC", "OPTS", "HR", "OT" ; dm = new DefaultTableModel( cols, 0 ); table = new JTable( dm ); table.gettableheader gettableheader(). ().setfont setfont( new Font( "Dialog", Font.BOLD, 12 ) ); cont.add add( new JScrollPane( table ), BorderLayout.CENTER ); //** Add the named button to a panel private JButton addbutton( JPanel p, String name ) { JButton b = new JButton( name ); b.setfont setfont( new Font( "Dialog", Font.BOLD, 14 ) ); p.add add( b ); return b; //** Use an EmpRW object to read records from a // specified input file. Add the records to the JTable. private void read() { clearrows(); JFileChooser fc = new JFileChooser(); int choice = fc.showopendialog showopendialog( new JFrame() ); if ( choice == JFileChooser.APPROVE_OPTION ) infilename = fc.getselectedfile getselectedfile(). ().getname getname(); else 74

75 return; //*** user hit CANCEL button String outfilename = "OutputFor" OutputFor_" + infilename; emprw = new EmpRW( infilename, outfilename ); emprw.read read(); Enumeration e = emprw.getemps getemps(). ().elements elements(); while ( e.hasmoreelements hasmoreelements() ) { Emp t = (Emp( Emp) e.nextelement nextelement(); dm.addrow addrow( t.getfieldvalues getfieldvalues() ); //*** polymorphic //** Use an EmpRW object to write records from the JTable // to a specified file. private void write() { Enumeration e = dm.getdatavector getdatavector(). ().elements elements(); Vector records = new Vector(); while ( e.hasmoreelements hasmoreelements() ) { Vector fields = (Vector( Vector) e.nextelement nextelement(); String t = ""; Enumeration e2 = fields.elements elements(); while ( e2.hasmoreelements hasmoreelements() ) { String s = (String( String) e2.nextelement nextelement(); if (!s.equals equals( Emp.NotApplicable ) ) t += s + " "; records.addelement addelement( t ); emprw.writerecords writerecords( records ); 75

76 //** Clear the JTable's rows before a read. private void clearrows() { int n = dm.getrowcount getrowcount(); for ( int i = dm.getrowcount getrowcount() - 1; i >= 0; i--i ) dm.removerow removerow( i ); 76

Java - Kresba. 2/28/11 1/8 Java - kresba

Java - Kresba. 2/28/11 1/8 Java - kresba Java - Kresba Základní entity a jejich kresba ve třídě Graphics nemůžeme nastavit linii, šířku a typ, z grafických atributů jí můžeme nastavit pouze barvu Linie (čára)... drawline(int x1, int y1, int x2,

Více

Základní grafika. Princip zobrazování obsahu. Grafický kontext. Zobrazovací metody. Přednáška 3

Základní grafika. Princip zobrazování obsahu. Grafický kontext. Zobrazovací metody. Přednáška 3 Přednáška 3 Princip zobrazování obsahu Základní grafika Překreslení (vykreslení) obsahu komponenty se realizuje při příchodu zprávy paint Standardně se o zobrazení stará samostatné vlákno Principiálně

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Aplikace s grafickým uživatelským rozhraním

Aplikace s grafickým uživatelským rozhraním Aplikace s grafickým uživatelským rozhraním doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz 1 Typy aplikací Konzolová

Více

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans. 1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými

Více

Grafické uživatelské rozhraní v Javě. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

Grafické uživatelské rozhraní v Javě. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Grafické uživatelské rozhraní v Javě A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Grafický návrh - příklad určíme základní rozvržení určíme chování okna při zvětšování

Více

2 Grafický výstup s využitím knihovny

2 Grafický výstup s využitím knihovny 2 Grafický výstup s využitím knihovny Studijní cíl Tento blok je věnován základním principům při vytváření grafického výstupu pomocí standardních metod, které poskytuje grafické rozhraní. V textu budou

Více

GUI - úvod. V této kapitole si ukážeme návod, jak vytvořit jednoduchou grafickou aplikaci a umístit do ní některé další grafické prvky.

GUI - úvod. V této kapitole si ukážeme návod, jak vytvořit jednoduchou grafickou aplikaci a umístit do ní některé další grafické prvky. GUI - úvod V této kapitole si ukážeme návod, jak vytvořit jednoduchou grafickou aplikaci a umístit do ní některé další grafické prvky. Klíčové pojmy: Grafické uživatelské rozhraní, grafické komponenty,

Více

aktivita, kdy sami chceme vykreslit nějaký grafický obrazec (úsečku, kružnici, atd.) nebo vypsat text

aktivita, kdy sami chceme vykreslit nějaký grafický obrazec (úsečku, kružnici, atd.) nebo vypsat text Kapitola 1. Grafika Základní charakteristika našeho snažení: aktivita, kdy sami chceme vykreslit nějaký grafický obrazec (úsečku, kružnici, atd.) nebo vypsat text nejedná se o vykreslování jednotlivých

Více

8. GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ

8. GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ 8. GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ Abstract Window Toolkit (AWT) je část Java Core API, kterou tvoří balíky: java.awt, java.awt.event (od JDK 1.1), java.awt.image, java.awt.datatransfer (od JDK 1.1). AWT

Více

Čipové karty Lekařská informatika

Čipové karty Lekařská informatika Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány

Více

Grafické uživatelské rozhraní v Javě. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

Grafické uživatelské rozhraní v Javě. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Grafické uživatelské rozhraní v Javě A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Grafický návrh - příklad ToolBar Menu soubor nový, otevřít, uložit, exportovat, konec...

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Java aplety. Předávání parametrů z HTML

Java aplety. Předávání parametrů z HTML Java aplety Aplety jsou speciální formou Java aplikací - mohou být spouštěny z prostředí WWW prohlížeče. Aby je prohlížeč spustil, musíme vložit do HTML stránky potřebné příkazy:

Více

GUI (Graphical User Interface)

GUI (Graphical User Interface) GUI (Graphical User Interface) Vizuální a interaktivní komunikaci počítač-člověk podporují balíčky: java.awt - obsahuje: - komponenty: knoflíky, textová pole, menu, posuvníky, grafiku... - kontejnery:

Více

Obsah přednášky. GUI v Javě a událostmi řízené programování. Základní prvky grafického rozhraní. Základní komponenty.

Obsah přednášky. GUI v Javě a událostmi řízené programování. Základní prvky grafického rozhraní. Základní komponenty. GUI v Javě a událostmi řízené programování Obsah přednášky GUI v Javě (připomínka) Návrhář GUI Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 A0B36PR2

Více

GUI v Javě a událostmi řízené programování

GUI v Javě a událostmi řízené programování GUI v Javě a událostmi řízené programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 A0B36PR2 Programování 2 Jan Faigl, 2016 A0B36PR2 Přednáška

Více

GUI v Javě (připomínka) Návrhář GUI Příklad aplikace MVC Model-View-Controller Události Vnitřní třídy. MVC Model-View-Controller

GUI v Javě (připomínka) Návrhář GUI Příklad aplikace MVC Model-View-Controller Události Vnitřní třídy. MVC Model-View-Controller GUI v Javě a událostmi řízené programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 4 A0B36PR2 Programování 2 Obsah přednášky GUI v Javě (připomínka)

Více

Obsah přednášky. GUI v Javě a událostmi řízené programování. Základní prvky grafického rozhraní. Základní komponenty.

Obsah přednášky. GUI v Javě a událostmi řízené programování. Základní prvky grafického rozhraní. Základní komponenty. GUI v Javě a událostmi řízené programování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 B0B36PJV Programování v JAVA Obsah přednášky GUI v Javě

Více

GUI v Javě a událostmi řízené programování

GUI v Javě a událostmi řízené programování GUI v Javě a událostmi řízené programování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek,

Více

Grafické uživatelské rozhraní GUI event-driven programming událostmi řízené programování

Grafické uživatelské rozhraní GUI event-driven programming událostmi řízené programování Grafické uživatelské rozhraní GUI event-driven programming událostmi řízené programování 1 Osnova 2 1. Vytváření oken základní balíčky 2. Třída Component 3. Komponenty atributy komponent 4. Swingové komponenty

Více

Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení

Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení Třída DrawingTool strana 1 1. Základ Třída DrawingTool Třída DrawingTool je určena k jednoduchému kreslení pomocí několika základních příkazů do grafického okna zadaných rozměrů (nastavení v konstruktoru),

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

GUI v Javě a událostmi řízené programování

GUI v Javě a událostmi řízené programování GUI v Javě a událostmi řízené programování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek,

Více

8. Grafické uživatelské rozhraní

8. Grafické uživatelské rozhraní 8. Grafické uživatelské rozhraní Až dosud jsme pro výstupy a vstupy do našich programů využívali pouze konzoli nebo soubor. Java nám však poskytuje nástroje pro tvorbu grafického uživatelského rozhraní,

Více

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java

Více

Práce se soubory v Javě

Práce se soubory v Javě Práce se soubory v Javě Cílem kapitoly je naučit pracovat se soubory a adresáři v Javě. Na jednoduchých příkladech ukázat procházení adresáře, čtení z textového souboru a zápis do textového souboru. Klíčové

Více

Projekty pro výuku programování v jazyce Java

Projekty pro výuku programování v jazyce Java JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Akademický rok: 2006/2007 TEZE BAKALÁŘSKÉ PRÁCE Projekty pro výuku programování v jazyce Java Jméno: František Přinosil

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém

Více

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)

Více

Package balíček z pohledu UML

Package balíček z pohledu UML OOPR_07 1 Obsah přednášky Balíčky (package) z pohledu UML Balíčky v Javě a příkaz import JAR soubory a samostatná aplikace Ladění programů debugger Jednoduché programy s grafikou 2 Package balíček z pohledu

Více

Programování v jazyku C# II. 4.kapitola

Programování v jazyku C# II. 4.kapitola Programování v jazyku C# II. 4.kapitola Obsah GDI + Vlastní kontrolky 2/37 GDI+ Graphics Device Interface Služba Windows framework poskytuje obalující třídy Umožňuje programování 2D grafiky bez znalosti

Více

Základy CSS (3. přednáška)

Základy CSS (3. přednáška) Základy CSS (3. přednáška) Kaskádové styly k čemu jsou HTML definuje strukturu, CSS definuje vzhled. CSS stylesheet soubor pravidel určujících vzhled jednotlivých prvků dokumentu CSS pravidlo sestává ze

Více

Seznámení s AWT: práce s okny, grafikou a textem

Seznámení s AWT: práce s okny, grafikou a textem Seznámení s AWT: S knihovnou Abstract Window Toolkit (AWT) jsme se seznámili již v kapitole 22, v níž jsme ji využili v kódu několika ukázkových apletů. Tato kapitola je věnována jejímu podrobnému popisu.

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.

Více

GUI v Javě. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 5 B0B36PJV Programování v JAVA

GUI v Javě. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 5 B0B36PJV Programování v JAVA GUI v Javě Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 5 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek, 2017 B0B36PJV Přednáška 5: GUI

Více

GUI v Javě. GUI v Javě GUI komponenty a kontejnery Dialogová okna Události a obsluha událostí z GUI

GUI v Javě. GUI v Javě GUI komponenty a kontejnery Dialogová okna Události a obsluha událostí z GUI GUI v Javě GUI v Javě Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 5 B0B36PJV Programování v JAVA GUI v Javě GUI komponenty a kontejnery Dialogová

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational

Více

Úloha 1. Text úlohy. Vyberte jednu z nabízených možností: NEPRAVDA. PRAVDA Úloha 2. Text úlohy

Úloha 1. Text úlohy. Vyberte jednu z nabízených možností: NEPRAVDA. PRAVDA Úloha 2. Text úlohy Úloha 1 Úloha 2 Otázka se týká předchozího kódu. Určete pravdivost následujícího tvrzení: "Pro každý bod vytvoří úsečku mezi ním a středem panelu." Úloha 3 Otázka se týká předchozího kódu. Určete pravdivost

Více

Seminář Java IV p.1/38

Seminář Java IV p.1/38 Seminář Java IV Seminář Java IV p.1/38 Rekapitulace Deklarace tříd Proměnné, metody, konstruktory, modifikátory přístupu Datové typy primitivní, objektové, pole Dědičnost Řídící konstrukce Podmínky, cykly

Více

Java GUI události. Událostmi řízené programování. Zpracování = obsluha událostí

Java GUI události. Událostmi řízené programování. Zpracování = obsluha událostí Java GUI události Cílem kapitoly je přiblížit hlavní princip událostmi řízeného programování a ukázat na příkladu způsob řešení pro konkrétní případ. Soubor obsahuje také tabulku s přehledem nejčastěji

Více

Postřehová hra. Zadání projektu. 1 Moje cíle

Postřehová hra. Zadání projektu. 1 Moje cíle Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek Postřehová hra ročníkový projekt Matouš Jokl, 1E květen 2014 Obsah 1 Moje cíle...1 2 Kód...2 1.Objekty a ArrayList...2 2.Jpanel

Více

Swing. Přehled komponent. Java UI, letní semestr 2017/2018 1

Swing. Přehled komponent. Java UI, letní semestr 2017/2018 1 Swing Přehled komponent 1 Label třída JLabel pro zobrazení krátkého textu obrázku obojího 2 Tlačítka mnoho druhů tlačítek (buttons) všechna dědí od AbstractButton normální tlačítko (JButton) "klikací"

Více

Programování v Javě I. Únor 2009

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance

Více

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd 7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Java - výjimky. private void vstup() throws IOException {... }

Java - výjimky. private void vstup() throws IOException {... } Java - výjimky Tato kapitola ukazuje na několika příkladech práci s výjimkami v Javě. Klíčové pojmy: Výjimka, hierarchie výjimek, zachytávání výjimek, blok try-catch, tvorba vlastních výjimek, propagace

Více

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance

Více

APNVZ_2. Vzor Model view controller, Observer

APNVZ_2. Vzor Model view controller, Observer APNVZ_2 Vzor Model view controller, Observer 1 Model-View-Controller MVC vzor architektury dělí interaktivní aplikaci na tři komponenty: Model obsahuje funkcionální jádro a data. Views (pohledy) zobrazují

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Události. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

Události. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Události A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Zpracování událostí - obsah 1. Připomenutí GUI 2. Co to je událost 3. Koncepce zpracování událostí 4. Zpracování vlastností

Více

Přehled probírané látky

Přehled probírané látky OOPR_04 1 Přehled probírané látky asociace (relace) mezi třídami popis množiny spojení mezi objekty skládání objektů - upřesněný typ asociace, vazba mezi objekty kompozice objektů (velmi pevná vazba mezi

Více

GUI v Javě. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 5 B0B36PJV Programování v JAVA

GUI v Javě. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 5 B0B36PJV Programování v JAVA GUI v Javě Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 5 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek, 2017 B0B36PJV Přednáška 5: GUI

Více

První kapitola úvod do problematiky

První kapitola úvod do problematiky První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru

Více

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Semestrální práce z předmětu KIV/UPA Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Zadání Program přečte ze vstupu dvě čísla v hexadecimálním tvaru a vypíše jejich součet (opět v hexadecimální tvaru).

Více

GUI. Systémová integrace pro desktopové aplikace

GUI. Systémová integrace pro desktopové aplikace GUI Systémová integrace pro desktopové aplikace 1 java.awt.desktop systémová integrace desktopových aplikací static boolean isdesktopsupported() test zda je integrace k dispozici static Desktop getdesktop()

Více

Jazyk C# (seminář 6)

Jazyk C# (seminář 6) Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí

Více

Objektově orientované programování v PHP 5. Martin Klíma

Objektově orientované programování v PHP 5. Martin Klíma Objektově orientované programování v PHP 5 Martin Klíma OOP & PHP 5 V PHP 5 konečně značné rozšíření OOP Blíží se to moderním programovacím jazykům jako Java nebo C# Výhody OOP Zapouzdření (nové modifikátory

Více

Jazyk C# (seminář 3)

Jazyk C# (seminář 3) Jazyk C# (seminář 3) Pavel Procházka KMI October 8, 2014 Motivace Největší využití v programování okenních aplikací a GUI knihoven. Data reprezentujeme pomocí objektů (tříd), máme tedy ucelený pohled na

Více

Vytvoření pokročilé Fotogalerie v Drupalu - Views

Vytvoření pokročilé Fotogalerie v Drupalu - Views Vytvoření pokročilé Fotogalerie v Drupalu - Views Views Máme tři pohledy: gallery_photos, all_galeries, admin_gallery Buď je můžete vytvořit podle návodu níže, nebo importovat z přiložených txt souborů

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

Více

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc. Kurz Databáze Práce s daty Doc. Ing. Radim Farana, CSc. Obsah Formuláře, typy formulářů, sekce formuláře. Objekty formuláře. Vytváření formulářů pomocí průvodce. Výběr dat, virtuální položky, agregace

Více

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků

Více

Gymnázium, Brno, Slovanské nám. 7 WORKBOOK. Mathematics. Teacher: Student:

Gymnázium, Brno, Slovanské nám. 7 WORKBOOK.   Mathematics. Teacher: Student: WORKBOOK Subject: Teacher: Student: Mathematics.... School year:../ Conic section The conic sections are the nondegenerate curves generated by the intersections of a plane with one or two nappes of a cone.

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více

1. Téma 12 - Textové soubory a výjimky

1. Téma 12 - Textové soubory a výjimky 1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Globální konstantní proměnné Konstantní proměnné specifikujeme s klíčovým slovem const, tyto konstantní proměné

Více

JAVA GUI Java, zimní semestr

JAVA GUI Java, zimní semestr JAVA GUI 1 Přehled JDK1.0 AWT Abstract Window Toolkit cíl na všech platformách dobře vypadající GUI moc se nepovedlo různá omezení (např. jen 4 fonty) špatně se používalo "ne-objektový" přístup JDK1.1

Více

ios Cvičení RSS čtečka

ios Cvičení RSS čtečka strana 1 ios Cvičení RSS čtečka Jiří Kamínek Kaminek.jiri@stoneapp.com strana 2 Vytvoření nového projektu v XCode Název RSSLesson Navigation-based Application use Core Data for storage nezaškrtávat strana

Více

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance

Více

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA What is an FTP client and how to use it? FTP (File transport protocol) - A protocol used to transfer your printing data files to the MAFRAPRINT

Více

Jazyk C# (seminář 7)

Jazyk C# (seminář 7) Jazyk C# (seminář 7) Pavel Procházka KMI 5. listopadu 2014 WindowsForms basics Windows forms je abstrakce nad WinApi napsaném v C Hello world aplikace ve WinAPI má 114! řádků podle http: //msdn.microsoft.com/cs-cz/library/bb384843.aspx

Více

Java Výjimky Java, zimní semestr

Java Výjimky Java, zimní semestr Java Výjimky 1 Výjimky (exceptions) hlášení a ošetření chyb výjimka signalizuje nějaký chybový stav výjimka = instance třídy java.lang.throwable dvě podtřídy java.lang.error a java.lang.exception konkrétní

Více

Datové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12.

Datové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12. Obsah přednášky: Definice pojmů o datový typ, o abstraktní datový typ Datové struktury Abstraktní datové typy a jejich implementace o Fronta (Queue) o Zásobník (Stack) o Množina (Set) Algoritmizace (Y36ALG),

Více

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/ UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

RMI Remote Method Invocation

RMI Remote Method Invocation 2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient

Více

14.4.1. Typický prvek kolekce pro české řazení

14.4.1. Typický prvek kolekce pro české řazení 14.4. Co všechno by měl mít typický prvek kolekce 177 Poznámka: Třídy BigInteger, BigDecimal a Date budou vysvětleny v částech [15./183, [16./185 a [18.1./204. 14.4.1. Typický prvek kolekce pro české řazení

Více

Distribuované systémy a výpočty

Distribuované systémy a výpočty Distribuované systémy a výpočty X36DSV Jan Janeček Peter Macejko CORBA Common Object Request Broker Architecture - konsorcium OMG (Object Management Group) - standard pro podporu komunikace v DS - pouze

Více

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem

Více

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací

Více

Abstraktní třída a rozhraní

Abstraktní třída a rozhraní Abstraktní třída a rozhraní Někdy se může stát, zejména při psaní v hierarchické struktuře hodně nadřazených tříd, že tušíme, že bude ve zděděných třídách vhodné použít nějakou metodu. Tuto metodu ještě

Více

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text()); Anotace a Hibernate Aleš Nosek, Ondřej Vadinský, Daniel Krátký Anotace v Javě Anotace jsou novinkou v Javy verze 5. Anotace umožňují doplnit kód Javy o dodatečné informace. Zapisují se přímo do zdrojového

Více

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

Část I Příklad - Generické typy, iterátor

Část I Příklad - Generické typy, iterátor Část 1 Příklad - Generické typy, iterátor GUI v Javě Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 3 A0B36PR2 Programování 2 Generické typy Příklad

Více

Vytváření a použití knihoven tříd

Vytváření a použití knihoven tříd Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce

Více

GUI v Javě. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 3 A0B36PR2 Programování 2

GUI v Javě. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 3 A0B36PR2 Programování 2 GUI v Javě Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 3 A0B36PR2 Programování 2 Jan Faigl, 2016 A0B36PR2 Přednáška 3: GUI v Javě 1 / 56 Část 1 Příklad

Více

NSWI096 - INTERNET. CSS kaskádové styly. Mgr. Petr Lasák

NSWI096 - INTERNET. CSS kaskádové styly. Mgr. Petr Lasák NSWI096 - INTERNET CSS kaskádové styly Mgr. Petr Lasák MINULE

Více

GUI v Javě. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 3 A0B36PR2 Programování 2

GUI v Javě. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 3 A0B36PR2 Programování 2 GUI v Javě Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 3 A0B36PR2 Programování 2 Jan Faigl, 2016 A0B36PR2 Přednáška 3: GUI v Javě 1 / 56 Část 1 Příklad

Více

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

Více

OOPR_05. Případové studie

OOPR_05. Případové studie OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára

Více