User Tools

Site Tools


swing:labels

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
swing:labels [2017/04/04 15:55] gthanosswing:labels [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Labels ======+====== Labels  - Η κλάση JLabel ======
  
 Μέχρι τώρα είδαμε πως μπορείτε να προσθέσετε ένα κουμπί σε ένα αντικείμενο της κλάσης [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html|javax.swing.JFrame]]. Εάν θέλετε να προσθέσετε κείμενο ή εικόνα χωρίς να υπάρχει αλληλεπίδραση με αυτό θα χρειαστείτε ένα label ([[http://docs.oracle.com/javase/7/docs/api/javax/swing/JLabel.html|javax.swing.JLabel]]) για να το κάνετε όπως παρακάτω: Μέχρι τώρα είδαμε πως μπορείτε να προσθέσετε ένα κουμπί σε ένα αντικείμενο της κλάσης [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html|javax.swing.JFrame]]. Εάν θέλετε να προσθέσετε κείμενο ή εικόνα χωρίς να υπάρχει αλληλεπίδραση με αυτό θα χρειαστείτε ένα label ([[http://docs.oracle.com/javase/7/docs/api/javax/swing/JLabel.html|javax.swing.JLabel]]) για να το κάνετε όπως παρακάτω:
Line 11: Line 11:
   public LabelGreeting () {   public LabelGreeting () {
     super();     super();
-    setSize(200, 100); +    setTitle("Label Demo"); 
-    setTitle("button with label"); +    JLabel greeting = new JLabel("   How are you?    "); 
-    JLabel greeting = new JLabel("How are you?");+    //JLabel greeting = new JLabel("<html><font size='10' color='red'>How are you?</font></html>"); 
 +    //JLabel greeting = new JLabel(new ImageIcon("howAreYou.jpg")); 
 +    
     add(greeting);     add(greeting);
 +    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 +    pack();
 +    setVisible(true);
   }   }
      
Line 21: Line 26:
       public void run() {       public void run() {
        LabelGreeting lg = new LabelGreeting();        LabelGreeting lg = new LabelGreeting();
-       lg.setVisible(true); 
       }       }
     });     });
   }   }
 +}
 } }
 </code> </code>
  
-Ένα αντικείμενο της κλάσης JLabel μπορεί να περιέχει κείμενο ή εικόνα ή και τα δύο. Επίσης σε ένα τέτοιο αντικείμενο της κλάσης, στην θέση του κειμένου μπορείτε να προσθέσετε HTML όπως θα δούμε παρακάτω. Εάν προσθέσετε μόνο κείμενο αυτό στοιχίζεται αυτόματα στα αριστερά ενώ εάν προσθέσετε εικόνα αυτή στοιχίζεται αυτόματα στα δεξιά. Σε κάθε περίπτωση μπορείτε να προσδιορίσετε τον τρόπο στοίχισης του περιεχομένου μέσα από τις μεθόδους+Ένα αντικείμενο της κλάσης **JLabel** μπορεί να περιέχει κείμενο ή εικόνα ή και τα δύο. Επίσης σε ένα τέτοιο αντικείμενο της κλάσης, στην θέση του κειμένου μπορείτε να προσθέσετε HTML όπως θα δούμε παρακάτω. Εάν προσθέσετε μόνο κείμενο αυτό στοιχίζεται αυτόματα στα αριστερά ενώ εάν προσθέσετε εικόνα αυτή στοιχίζεται αυτόματα στα δεξιά. Σε κάθε περίπτωση μπορείτε να προσδιορίσετε τον τρόπο στοίχισης του περιεχομένου μέσα από τις μεθόδους
 <code java> <code java>
 void setHorizontalAlignment(int alignment) void setHorizontalAlignment(int alignment)
 //Sets the alignment of the label's contents along the X axis. //Sets the alignment of the label's contents along the X axis.
 void setVerticalAlignment(int alignment) void setVerticalAlignment(int alignment)
-Sets the alignment of the label's contents along the Y axis.+//Sets the alignment of the label's contents along the Y axis.
 </code> </code>
  
-Εάν ένα Label περιέχει κείμενο και εικόνα μπορείτε να προσδιορίσετε την θέση του κειμένου σε σχέση με την εικόνα μέσα από τις μεθόδους+Εάν ένα αντικείμενο **JLabel** περιέχει κείμενο και εικόνα μπορείτε να προσδιορίσετε την θέση του κειμένου σε σχέση με την εικόνα μέσα από τις μεθόδους
 <code java> <code java>
 void setHorizontalTextPosition(int textPosition) void setHorizontalTextPosition(int textPosition)
Line 44: Line 49:
 </code> </code>
  
-Δείτε το παρακάτω παράδειγμα από το site της Oracle και μεταβάλλετε τις παραμέτρους. Παρατηρήστε πως μπορείτε να προσθέσετε HTML κείμενο σε ένα αντικείμενο τύπου Label. +Στο παραπάνω πρόγραμμα βάλτε σε σχόλια τη γραμμή 9 και βγάλτε από τα σχόλια τις γραμμές 10 ή 11. Δείτε πως αλλάζει το περιεχόμενο του label εάν φορτώσετε μία εικόνα ή γράψετε HTML κείμενο. Προκειμένου να τρέξει το πρόγραμμα επιτυχώς στη γραμμή 11 θα χρειαστείτε την εικόνα {{:swing:howareyou.jpg?200|}}
-<code java LabelDemo.java> +
- +
-import java.awt.*; +
-import java.awt.event.*; +
-import javax.swing.*; +
- +
-/* +
- * LabelDemo.java needs one other file: +
-   images/middle.gif +
- */ +
-public class LabelDemo extends JPanel { +
-  public LabelDemo() { +
-    super(new GridLayout(3,1));  //3 rows, 1 column +
-     +
-    JLabel label1, label2, label3, label4; +
- +
-    ImageIcon icon = createImageIcon("images/middle.gif", +
-                     "a pretty but meaningless splat"); +
-                      +
-    //setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); +
- +
-    //Create the first label. +
-    label1 = new JLabel("Image and Text", +
-              icon, +
-              JLabel.LEFT); +
-    //Set the position of its text, relative to its icon: +
-    label1.setVerticalTextPosition(JLabel.BOTTOM); +
-    label1.setHorizontalTextPosition(JLabel.CENTER); +
-    label1.setBorder(BorderFactory.createLineBorder(Color.BLACK)); +
- +
-    //Create the other labels. +
-    label2 = new JLabel("Text-Only Label"); +
-    //label2.setHorizontalAlignment(JLabel.RIGHT); +
-    label2.setBorder(BorderFactory.createLineBorder(Color.BLACK)); +
-     +
-    label3 = new JLabel(icon); +
-    label3.setBorder(BorderFactory.createLineBorder(Color.BLACK)); +
-     +
-    label4 = new JLabel("<html><font size='12pt' color='red'>HTML text</font></html>", JLabel.RIGHT); +
-    label4.setBorder(BorderFactory.createLineBorder(Color.BLACK)); +
- +
-    //Create tool tips, for the heck of it. +
-    label1.setToolTipText("A label containing both image and text"); +
-    label2.setToolTipText("A label containing only text"); +
-    label3.setToolTipText("A label containing only an image"); +
- +
-    //Add the labels. +
-    add(label1); +
-    add(label2); +
-    add(label3); +
-    add(label4); +
-  } +
- +
-  /** Returns an ImageIcon, or null if the path was invalid. */ +
-  protected static ImageIcon createImageIcon(String path, +
-                         String description) { +
-    java.net.URL imgURL = LabelDemo.class.getResource(path); +
-    if (imgURL != null) { +
-      return new ImageIcon(imgURL, description); +
-    } else { +
-      System.err.println("Couldn't find file" + path); +
-      return null; +
-    } +
-  } +
- +
-  /** +
-   * Create the GUI and show it For thread safety, +
-   * this method should be invoked from the +
-   * event dispatch thread. +
-   */ +
-  private static void createAndShowGUI() { +
-    //Create and set up the window. +
-    JFrame frame = new JFrame("LabelDemo"); +
-    frame.setSize(400,300); +
-    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); +
- +
-    //Add content to the window. +
-    frame.add(new LabelDemo()); +
- +
-    //Display the window. +
-    //frame.pack(); +
-    frame.setVisible(true); +
-  } +
- +
-  public static void main(String[] args) { +
-    //Schedule a job for the event dispatch thread: +
-    //creating and showing this application's GUI. +
-    SwingUtilities.invokeLater(new Runnable() { +
-      public void run() { +
- //Turn off metal's use of bold fonts +
-     UIManager.put("swing.boldMetal", Boolean.FALSE); +
-         +
- createAndShowGUI(); +
-      } +
-    }); +
-  } +
-} +
-</code> +
- +
  
 +| Προηγούμενο: [[:swing:icons | Η κλάση ImageIcon ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:swing:buttons | Buttons, CheckBoxes & RadioButtons ]] |
swing/labels.1491321300.txt.gz · Last modified: 2017/04/04 14:55 (external edit)