This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
swing:labels [2015/05/11 03:59] gthanos |
swing:labels [2016/02/26 11:15] (current) |
||
---|---|---|---|
Line 38: | Line 38: | ||
void setVerticalTextPosition(int textPosition) | void setVerticalTextPosition(int textPosition) | ||
//Sets the vertical position of the label's text, relative to its image. | //Sets the vertical position of the label's text, relative to its image. | ||
+ | </code> | ||
+ | |||
+ | Δείτε το παρακάτω παράδειγμα από το site της Oracle και μεταβάλλετε τις παραμέτρους. Παρατηρήστε πως μπορείτε να προσθέσετε HTML κείμενο σε ένα αντικείμενο τύπου Label. | ||
+ | <code java LabelDemo.java> | ||
+ | package components; | ||
+ | |||
+ | 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> | </code> | ||