Results 1 to 10 of 10

Thread: java

  1. #1
    john_dillinger's Avatar
    Join Date
    Mar 2011
    Location
    Desperation
    Posts
    141
    Rep Power
    76

    java

    Συνεχίζω την υλοποίηση της δευτεροβάθμιας εξίσωσης σε java σε συνέχεια του νήματος C++ : [Only registered and activated users can see links. ]

    Code:
    import java.util.Scanner;
    class Quadratic {
    private int a;
    private int b;
    private int c;
        //Constructor (κατασκευαστής αντικειμένου κλάσης και αρχικοποίηση μεταβλητών)
    Quadratic() {
    a = 0;
    b = 0;
    c = 0;
    }
        //οι μεταβλητές που θα εισαγάγει ο χρήσης 
      Quadratic(int newA, int newB, int newC) {
      a = newA;
      b = newB;
      c = newC;
    }
       //Διεπαφές
      public int getA() {
      return a;
    }
      public int getB() {
      return b;
    }
      public int getC() {
      return c;
    }
       //Επιστροφή Διακρίνουσας  (b^2-4ac)
      public double getDiscriminant() {
      return (Math.pow(b, 2) - 4 * a * c);
    }
       //Eπιστροφή ριζών 
      public double getRoot1() {
      return ((-b + Math.sqrt(getDiscriminant())) / (2 * a));
    }
      public double getRoot2() {
      return ((-b - Math.sqrt(getDiscriminant())) / (2 * a));
    }
    }
    //Κύρια μέθοδος main()
    class QuadraticEquation {
      public static void main(String[] args) {
      Scanner input = new Scanner(System.in);
      System.out.println("Εισάγετε τιμές a, b, και c σε σειρά: ");
      int a = input.nextInt();
      int b = input.nextInt();
      int c = input.nextInt();
      Quadratic qe = new Quadratic(a, b, c);     
      if (qe.getDiscriminant() > 0) {
      System.out.println("Οι ρίζες έιναι : " + qe.getRoot1() + " and " + qe.getRoot2());
    }
      else {
      System.out.println("H εξίσωση δεν έχει πραγματικές ή δεν έχει ρίζες.");
    }
    }
    }
    Είναι λίγο διαφορετικά απο την C++ αλλά η java είναι αρκετά απλούστερη.
    Σώνουμε το αρχείο σαν Quadratic.java
    Compile :
    Code:
     javac Quadratic.java
    Εκτέλεση:
    Code:
     java QuadraticEquation
    Θα δημιουργηθούν 2 αρχεία αλλα θα εκτελεστεί το αρχείο QuadraticEquation.class γιατί αυτό περιέχει την main()
    Σαν να είχαν τελειωμό τα βάσανα και οι καημοί αυτού του κόσμου.
    Αλέξανδρος Παπαδιαμάντης

  2. #2
    suzakias's Avatar
    Join Date
    Jan 2011
    Age
    46
    Posts
    1,088
    Rep Power
    299

    Απ: java

    Like any other program running on the Java platform, a Swing program can create additional threads and thread pools, using the tools described in the Concurrency lesson. But for basic Swing programs the threads described here are sufficient.
    Aπο αυτο θελω λιγο να μου μαθεις κατι(Swing program).
    Τωρα για το ποιο πανω κειμενο εχω να πω:
    Οτι μπραβο σου...........
    http://www.satdreamgr.com/forum/signaturepics/sigpic123_3.gif

  3. #3
    john_dillinger's Avatar
    Join Date
    Mar 2011
    Location
    Desperation
    Posts
    141
    Rep Power
    76

    Απ: java

    Quote Originally Posted by suzakias View Post
    Aπο αυτο θελω λιγο να μου μαθεις κατι(Swing program).
    Τωρα για το ποιο πανω κειμενο εχω να πω:
    Οτι μπραβο σου...........
    Το Swing (είναι λίγο απαρχειωμένο) και το Jpane καθώς επίσης και διάφορα άλλα είναι έτοιμες βιβλιοθήκες γραφικών που χρησιμοποιεί η java ώστε οι εφαρμογές να αποκτούν γραφικό χαρακτήρα .
    Ολα (σχεδόν) περιέχονται στο IDE netbeans [Only registered and activated users can see links. ].
    Για να δουλέψουν αυτά σωστά όμως θέλει πολύ μεγάλη προσοχή τί εντολή πρέπει να βάλεις πίσω απο κάθε button (listenser) ώστε πατώντας το να εκτελείται η σωστή.
    Πιστεύω ότι το κατάλαβες.
    Σαν να είχαν τελειωμό τα βάσανα και οι καημοί αυτού του κόσμου.
    Αλέξανδρος Παπαδιαμάντης

  4. #4
    john_dillinger's Avatar
    Join Date
    Mar 2011
    Location
    Desperation
    Posts
    141
    Rep Power
    76

    Απ: java

    Σε συνέχεια του προηγούμενου post παραθέτω ένα πρόγραμμα που χρησιμοποιεί το swing με το IDE netbeans και επεκτείνει όλες τις ιδιότητες του :

    DisplayModeModelTest.java (αλλάζει την ανάλυση και το refresh rate της οθόνης)
    Code:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.*;
     
    class DisplayModeModel extends DefaultTableModel {
        private DisplayMode[] modes;
     
        public DisplayModeModel(DisplayMode[] modes) {
            this.modes = modes;
        }
     
        public DisplayMode getDisplayMode(int r) {
            return modes[r];
        }
     
        public String getColumnName(int c) {
            return DisplayModeTest.COLUMN_NAMES[c];
        }
     
        public int getColumnCount() {
            return DisplayModeTest.COLUMN_WIDTHS.length;
        }
     
        public boolean isCellEditable(int r, int c) {
            return false;
        }
     
        public int getRowCount() {
            if (modes == null) {
                return 0;
            }
            return modes.length;
        }
     
        public Object getValueAt(int rowIndex, int colIndex) {
            DisplayMode dm = modes[rowIndex];
            switch (colIndex) {
                case DisplayModeTest.INDEX_WIDTH :
                    return Integer.toString(dm.getWidth());
                case DisplayModeTest.INDEX_HEIGHT :
                    return Integer.toString(dm.getHeight());
                case DisplayModeTest.INDEX_BITDEPTH : {
                    int bitDepth = dm.getBitDepth();
                    String ret;
                    if (bitDepth == DisplayMode.BIT_DEPTH_MULTI) {
                        ret = "Multi";
                    } else {
                        ret = Integer.toString(bitDepth);
                    }
                    return ret;
                }
                case DisplayModeTest.INDEX_REFRESHRATE : {
                    int refreshRate = dm.getRefreshRate();
                    String ret;
                    if (refreshRate == DisplayMode.REFRESH_RATE_UNKNOWN) {
                        ret = "Unknown";
                    } else {
                        ret = Integer.toString(refreshRate);
                    }
                    return ret;
                }
            }
            throw new ArrayIndexOutOfBoundsException("Invalid column value");
        }
     
    }
     
     class DisplayModeTest extends JFrame implements ActionListener,
        ListSelectionListener {
     
        private boolean waiting = false;
        private GraphicsDevice device;
        private DisplayMode originalDM;
        private JButton exit = new JButton("Exit");
        private JButton changeDM = new JButton("Set Display");
        private JLabel currentDM = new JLabel();
        private JTable dmList = new JTable();
        private JScrollPane dmPane = new JScrollPane(dmList);
        private boolean isFullScreen = false;
     
        public static final int INDEX_WIDTH = 0;
        public static final int INDEX_HEIGHT = 1;
        public static final int INDEX_BITDEPTH = 2;
        public static final int INDEX_REFRESHRATE = 3;
     
        public static final int[] COLUMN_WIDTHS = new int[] {
            100, 100, 100, 100
        };
        public static final String[] COLUMN_NAMES = new String[] {
            "Width", "Height", "Bit Depth", "Refresh Rate"
        };
     
        public DisplayModeTest(GraphicsDevice device) {
            super(device.getDefaultConfiguration());
            this.device = device;
            setTitle("Display Mode Test");
            originalDM = device.getDisplayMode();
            setDMLabel(originalDM);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            exit.addActionListener(this);
            changeDM.addActionListener(this);
            changeDM.setEnabled(device.isDisplayChangeSupported());
        }
     
        public void actionPerformed(ActionEvent ev) {
            Object source = ev.getSource();
            if (source == exit) {
                device.setDisplayMode(originalDM);
                System.exit(0);
            } else { 
                int index = dmList.getSelectionModel().getAnchorSelectionIndex();
                if (index >= 0) {
                    DisplayModeModel model = (DisplayModeModel)dmList.getModel();
                    DisplayMode dm = model.getDisplayMode(index);
                    device.setDisplayMode(dm);
                    setDMLabel(dm);
                    setSize(new Dimension(dm.getWidth(), dm.getHeight()));
                    validate();
                }
            }
        }
     
        public void valueChanged(ListSelectionEvent ev) {
            changeDM.setEnabled(device.isDisplayChangeSupported());
        }
     
        private void initComponents(Container c) {
            setContentPane(c);
            c.setLayout(new BorderLayout());
            JPanel currentPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
            c.add(currentPanel, BorderLayout.NORTH);
            JLabel current = new JLabel("Current Display Mode : ");
            currentPanel.add(current);
            currentPanel.add(currentDM);
            JPanel modesPanel = new JPanel(new GridLayout(1, 2));
            c.add(modesPanel, BorderLayout.CENTER);
                for (int i = 0; i < COLUMN_WIDTHS.length; i++) {
                TableColumn col = new TableColumn(i, COLUMN_WIDTHS[i]);
                col.setIdentifier(COLUMN_NAMES[i]);
                col.setHeaderValue(COLUMN_NAMES[i]);
                dmList.addColumn(col);
            }
            dmList.getSelectionModel().setSelectionMode(
                ListSelectionModel.SINGLE_SELECTION);
            dmList.getSelectionModel().addListSelectionListener(this);
            modesPanel.add(dmPane);
            JPanel controlsPanelA = new JPanel(new BorderLayout());
            modesPanel.add(controlsPanelA);
            JPanel controlsPanelB = new JPanel(new GridLayout(2, 1));
            controlsPanelA.add(controlsPanelB, BorderLayout.NORTH);
            JPanel exitPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
            controlsPanelB.add(exitPanel);
            exitPanel.add(exit);
            JPanel changeDMPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
            controlsPanelB.add(changeDMPanel);
            changeDMPanel.add(changeDM);
            controlsPanelA.add(new JPanel(), BorderLayout.CENTER);
        }
     
        public void setVisible(boolean isVis) {
            super.setVisible(isVis);
            if (isVis) {
                dmList.setModel(new DisplayModeModel(device.getDisplayModes()));
            }
        }
     
        public void setDMLabel(DisplayMode newMode) {
            int bitDepth = newMode.getBitDepth();
            int refreshRate = newMode.getRefreshRate();
            String bd, rr;
            if (bitDepth == DisplayMode.BIT_DEPTH_MULTI) {
                bd = "Multi";
            } else {
                bd = Integer.toString(bitDepth);
            }
            if (refreshRate == DisplayMode.REFRESH_RATE_UNKNOWN) {
                rr = "Unknown";
            } else {
                rr = Integer.toString(refreshRate);
            }
            currentDM.setText(
                COLUMN_NAMES[INDEX_WIDTH] + ": " + newMode.getWidth() + " "
                + COLUMN_NAMES[INDEX_HEIGHT] + ": " + newMode.getHeight() + " "
                + COLUMN_NAMES[INDEX_BITDEPTH] + ": " + bd + " "
                + COLUMN_NAMES[INDEX_REFRESHRATE] + ": " + rr
                );
        }
     
        public void begin() {
            isFullScreen = device.isFullScreenSupported();
            setUndecorated(isFullScreen);
            setResizable(!isFullScreen);
            if (isFullScreen) {
                device.setFullScreenWindow(this);
                validate();
            } else {
               pack();
                setVisible(true);
            }
        }
     
        public static void main(String[] args) {
            GraphicsEnvironment env = GraphicsEnvironment.
                getLocalGraphicsEnvironment();
            GraphicsDevice[] devices = env.getScreenDevices();
            for (int i = 0; i < 1 /* devices.length */; i++) {
                DisplayModeTest test = new DisplayModeTest(devices[i]);
                test.initComponents(test.getContentPane());
                test.begin();
            }
        }
    }
    To compile:
    Code:
    javac DisplayModeModelTest.java
    To run:
    Code:
    java DisplayModeTest
    Αφιερωμένο στον φίλο suzakia :rolleyes:

    PS : Ο κώδικας παραπάνω αναπτύχθηκε σε ένα μεγάλο μέρος του απο το IDE netbeans .
    Σαν να είχαν τελειωμό τα βάσανα και οι καημοί αυτού του κόσμου.
    Αλέξανδρος Παπαδιαμάντης

  5. #5
    suzakias's Avatar
    Join Date
    Jan 2011
    Age
    46
    Posts
    1,088
    Rep Power
    299

    Απ: java

    @john_dillinger

    Βρε μεγαλε γκουρου για πες μου, πως η java υλοποιει την mysql?
    http://www.satdreamgr.com/forum/signaturepics/sigpic123_3.gif

  6. #6

    dimfil's Avatar
    Join Date
    Jan 2011
    Location
    Αθήνα, Χαλάνδρι...
    Age
    43
    Posts
    1,122
    Rep Power
    1494

    Απ: java

    Τόλη, αυτό δεν αναλύεται σε ένα post!

    Αν έχεις υπομονή, κατανόησε αρχικά [Only registered and activated users can see links. ] και στη συνέχεια θα χρειαστείς [Only registered and activated users can see links. ]...

    Καλή μελέτη...

  7. #7
    suzakias's Avatar
    Join Date
    Jan 2011
    Age
    46
    Posts
    1,088
    Rep Power
    299

    Απ: java

    Κατσε που να δεις οτι θα σκασει ο αλλος αν δεν με απαντηση τωρα φιλε Δημητρη.
    http://www.satdreamgr.com/forum/signaturepics/sigpic123_3.gif

  8. #8
    john_dillinger's Avatar
    Join Date
    Mar 2011
    Location
    Desperation
    Posts
    141
    Rep Power
    76

    Απ: java

    Quote Originally Posted by suzakias View Post
    @john_dillinger

    Βρε μεγαλε γκουρου για πες μου, πως η java υλοποιει την mysql?
    Ok.
    Ο MySQL είναι ένας πολύ καλός διαχειριστής βάσεων δεδομένων (schema) opensource και κάτω απο την άδειa GPL.
    H java σαν client ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΔΗΜΙΟΥΡΓΗΣΕΙ ΒΑΣΕΙΣ γιαυτό πρέπει να δημιουργηθούν με κάποιο άλλο πρόγραμμα όπως είναι το phpmyadmin.
    Σε αυτό το παράδειγμα θα κάνουμε ένα απλό κώδικα οπου χρησιμοποιώντας ένα απλό πρόγραμμα σε java να κάνουμε connect και disconnect σε μία βάση (test) που δεν περιέχει πίνακες οπότε δεν θα υπάρχουν και queries (αυτά σε μελλοντικό tutorial)
    Code:
       import java.sql.*;
    
       public class Connect
       {
           public static void main (String[] args)
           {
               Connection conn = null;
    
               try
               {
                   String userName = "testuser";                   //το username που απαιτείτε
                   String password = "testpass";                    // το password
                   String url = "jdbc:mysql://localhost/test";    //H Βάση (test)
                   Class.forName ("com.mysql.jdbc.Driver").newInstance (); 
                   conn = DriverManager.getConnection (url, userName, password);
                   System.out.println ("Database connection established");
               }
               catch (Exception e)
               {
                   System.err.println ("Cannot connect to database server");
               }
               finally
               {
                   if (conn != null)
                   {
                       try
                       {
                           conn.close ();
                           System.out.println ("Database connection terminated");
                       }
                       catch (Exception e) { /* αγνόησε μηνύματα λάθους  */ }
                   }
               }
           }
       }
    Για να δουλέψει αυτό πρέπει να γίνει λήψη του αρχείου mysql-connector-java.jar (connector/j) απο την ιστοσελίδα της Oracle και να ρυθμιστεί σωστά το CLASSPATH.
    Θα επανέλθω με ένα πλήρες tutorial με το οποίο θα δημιουργηθούν πίνακες (tables) στήν βάση και θα εκτελεστούν ορισμένα queries (απαιτούν κάποιες γνώσεις SQL)
    Το θεματάκι που έθιξες Τόλη είναι αρκετά πολύπλοκο αλλά είναι και πολύ ενδιαφέρον.
    Σαν να είχαν τελειωμό τα βάσανα και οι καημοί αυτού του κόσμου.
    Αλέξανδρος Παπαδιαμάντης

  9. #9
    suzakias's Avatar
    Join Date
    Jan 2011
    Age
    46
    Posts
    1,088
    Rep Power
    299

    Απ: java

    Γκουρου, θα αναμενω το νεο tutorial ποιο πληρες με queries και καποια παραδειγματα της γλωσσας SQL
    http://www.satdreamgr.com/forum/signaturepics/sigpic123_3.gif

  10. #10
    john_dillinger's Avatar
    Join Date
    Mar 2011
    Location
    Desperation
    Posts
    141
    Rep Power
    76

    Απ: java

    Quote Originally Posted by suzakias View Post
    Γκουρου, θα αναμενω το νεο tutorial ποιο πληρες με queries και καποια παραδειγματα της γλωσσας SQL
    Δεν είμαι guru.
    Απλά ασχολήθηκα με αυτό το αντικείμενο πρίν απο 5-6 χρόνια και στηριζόμενος πάντα στα βιβλία των Paul&Harvey Deitel που είναι guru.
    Πιστεύω το ερχόμενο Σαββατοκύριακο να κάνω ένα πιό πλήρες tutorial αλλά όπως είπε και ο dimfil παραπάνω δεν είναι και τόσο απλό.
    Σαν να είχαν τελειωμό τα βάσανα και οι καημοί αυτού του κόσμου.
    Αλέξανδρος Παπαδιαμάντης

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. How to make own picons - video tutorial by java
    By sat gr in forum Εγχειρίδια Dream E2
    Replies: 0
    Last Post: 17-07-11, 08:20

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •