Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / GUI / June 2007

Tip: Looking for answers? Try searching our database.

trouble creating resizable jlabel with an image??

Thread view: 
E.D.I - 06 Jun 2007 16:38 GMT
i want to create a component that is just kind if icon that is
resizable so i made a lable with an icon,
first of all i cant strech the picture on the lable so i made a
picture with a correct size to fit on to the
lable, but when i'm using this as a componnent in the form whenever i
change the size of it the icon
stays with the same size , why is that and how can i create the icon
to work as a background image?
Andrew Thompson - 07 Jun 2007 02:42 GMT
Sub: trouble creating resizable jlabel with an image??

Please find your shift key and apply it once at the
start of each sentence, for every use of the word
'I' and any reference to J2SE classes (it is a JLabel,
unless you are talking about some completely
unrelated class).  Also note that one question
mark denotes a question, whereas two indicates
that the person asking, is impatient and needy -
please restrict yourself to one.

>...how can i create the icon
>to work as a background image?

This code probably answers the question of why it
is not wise to do this, better than it answers the
actual question.

<sscce>
import java.net.*;
import java.awt.*;
import java.awt.image.*;
import javax.swing.*;

class BackgroundImageLabel extends JPanel {

 Image image;
 JLabel label;

 BackgroundImageLabel(URL imgURL, String text) {
   super( new BorderLayout() );
   image = Toolkit.getDefaultToolkit()
     .createImage( imgURL );
   MediaTracker mt = new MediaTracker(this);
   mt.addImage( image, 0 );
   try {
     mt.waitForAll();
   } catch(InterruptedException e) {
     // wake and continue..
   }
   label = new JLabel(text);
   add( label, BorderLayout.CENTER );
 }

 public void paintComponent(Graphics g) {
   g.drawImage( image,
     0,0,getWidth(),getHeight(),
     this );
   label.repaint();
 }

 public Dimension getMinimumSize() {
   Dimension labelSize = label.getMinimumSize();
   int imageWidth = image.getWidth(this);
   int imageHeight = image.getHeight(this);
   int width = ( (imageWidth/2)<labelSize.width ?
     imageWidth/2 :
     labelSize.width );
   int height = ( (imageHeight/2)<labelSize.height ?
     imageHeight/2 :
     labelSize.height );

   return new Dimension(width,height);
 }

 public Dimension getPreferredSize() {
   Dimension labelSize = label.getPreferredSize();
   int imageWidth = image.getWidth(this);
   int imageHeight = image.getHeight(this);
   int width = ( (imageWidth)<labelSize.width ?
     imageWidth :
     labelSize.width );
   int height = ( (imageHeight)<labelSize.height ?
     imageHeight :
     labelSize.height );

   return new Dimension(width,height);
 }

 public static void main(String[] args)
   throws MalformedURLException {

   URL imageURL = new URL(
     "http://java.sun.com/im/logo_sun_small_sdn.gif");
   JPanel p = new JPanel( new BorderLayout() );

   p.add( new BackgroundImageLabel(imageURL, "North Label"),
     BorderLayout.NORTH );
   p.add( new BackgroundImageLabel(imageURL, "Eastern Label"),
     BorderLayout.EAST );
   p.add( new BackgroundImageLabel(imageURL, "Western Label"),
     BorderLayout.WEST );
   p.add( new BackgroundImageLabel(imageURL, "Center Label"),
     BorderLayout.CENTER );
   p.add( new BackgroundImageLabel(imageURL, "South Label"),
     BorderLayout.SOUTH );
   p.validate();

   JOptionPane.showMessageDialog(null, p);
 }
}
</sscce>

Signature

Andrew Thompson
http://www.athompson.info/andrew/



Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.