این کامپوننت جایگزینی برای Label از مجموعه کامپوننتهای AWT بشمار می رود با این تفاوت که JLabel دارای قابلیت های بیشتری نسبت که Label است . به عنوان مثال Label فقط می تواند یک خط اطلاعات را در خود نگهداری کند  در صورتی که JLabel می تواند از چندین خط اطلاعات  و یا ترکیبی از Text و عکس باشد .تفاوت دیگری که JLabel نسبت به Label دارد ، در اینست که در JLabel می توان از دستورات HTML هم برای نمایش اطلاعات استفاده کرد. کامپوننت JLabel دارای سازنده های متعددی میباشد که برخی از آنها به شرح ذیل میباشند :

Public JLable()

JLabel label = new JLabel();

Public JLabel(Icon image)

Icon icon = new ImageIcon("test.gif");

JLabel label  = new JLabel(icon) ;

Public JLabel(Icon image , int horizontalAlignment)

Icon icon = new IconImage("test.gif) ;

JLabel label = new JLabel (icon , JLabel.RIGHT) ;

Public JLabel(String text)

JLabel label = new JLabel("Test Label");

Public JLabel(String text , int horizontalAlignment)

JLabel label = new JLabel("Test Label" , JLabel.LEFT);

 

Public JLabel(String text , Icon icon , int horizontalAlignment)

Icon icon = new IconImage("test.gif");

JLabel label = new JLabel("Test Label" , "test.gif" , JLabel.RIGHT);

با استفاده از سازنده های فوق شما می توانید Text و Icon و موقعیت قرار گیری آنها را روی  JLabel تعیین کنید . بصورت پیش فرض مقادیر Text و Icon  خالی هستند و موقعیت قرار گیری آنها با استفاده از موقعیت کنترل های در فرم است بدین معنی که اگر موقعیت قرار گیری کنترل ها در روی فرم در سمت چپ یا Left باشد ، موقعیت Text و Icon هم در سمت چپ خواهد بود.

پارامتر horizontalAlignment 3 مقدار بصورت JLabel.LEFT , JLabel.Right , JLable.Center می تواند داشته باشد .

استفاده از خاصیت displayedMnemonic

از این خاصیت برای دسترسی مستقیم و سریع به کنترل وابسته به JLabel استفاده می شود.

به عنوان مثال فرض کنید می خواهید در یک برنامه با زدن کلیدهای ALT+U به فیلد Username در سطح فرم دسترسی داشته باشید. برای این کار می توانید یک JLabel روی فرم گذاشته و خاصیت displayedMnemonic آنرا با استفاده از کاراکتر U مقداد دهی کنید و سپس با استفاده از خاصیت labelFor کنترلی را که باید در هنگام زده شدن ALT + U دارای Focus شود را تعیین کنید .حال هر جایی از سطح فرم اگر کلیدهای ALT + U زده شود فیلد Username دارای Focus خواهد شد . مثال زیر نحوه انجام این کار را نشان می دهد:

JLabel label1 = new JLabel("Username :") ;

JTextField textField1 = new JTextField();

Label1.setDisplayedMnemonic(KeyEvent.VK_U) ;

label1.setLabelFor(textField1) ;

 

JLabel label2 = new JLabel("Password :") ;

JTextField textField2 = new JTextField();

label2.setDisplayedMnemonic(KeyEvent.VK_P) ;

label2.setLabelFor(textField2) ;

با مقداردهی خاصیت displayedMnemonic با یک کاراکتر خاص، آن کاراکتر در کامپوننت JLabel بصورت زیر خط دار نمایش داده میشود.

 

نکته :در هنگام استفاده از خاصیت displaedMnemonic به این نکته توجه داشته باشید که کاراکتر های مقدار دهی شده فقط با استفاده از  ترکیب کلید ALT و آن کاراکتر می توانند مورد استفاده قرار بگیرند . مانند ALT + U و یا ALT + P .

نکته :اکثر محیطهای برنامه نویسی جاوا مانند netBeans خاصیتهای فوق را  بصورت Visual در اختیار شما قرار می دهند و دیگر نیازی به نوشتن کد آنها بصورت دستی نمی باشد. برای دسترسی به آنها می توانید از پنجره Properties برای هر کنترل استفاده کنید .

تغییر رنگ و فونت در JLabel

در جدول زیر لیستی از خواصی که برای تغییر رنگ و فونت JLabel مورد استفاده قرار می گیرند، نشان داده است با استفاده از مقدار دهی این خواص می توانید رنگ و یا فونت JLabel را تغییر دهید . این خواص در بین تمام کنترل های Swing مشترک می باشند .

نام خاصیت

نوع داده ایی

توضیحات

background

Color

از این خاصیت برای تغییر رنگ پیش زمینه JLabel استفاده می شود .

border

Border

از این خاصیت برای تغییر حاشیه JLabel استفاده می شود . Border ها در قسمتهای بعد توصیح داده خواهند شد .

disabledForeground

Color

از این خاصیت برای تعیین رنگ قلم JLabel در هنگام غیر فعال بودن استفاده می شود .

font

Font

از این خاصیت برای تغییر نام قلم JLabel استفاده می شود .

foreground

Color

از این خاصیت برای تغییر رنگ قلم JLabel استفاده می شود.

به چند نمونه از نحوه استفاده از خواص فوق نشان داده شده است .

JLabel title = new JLabel("Want a Raise?", JLabel.CENTER);

title.setFont(new Font("Serif", Font.BOLD, 48));

در کد فوق ابتدا یک JLabel ایجاد شده و سپس با استفاده از کلاس Font یک فونت و نوع آن و نام آن به JLabel اختصاص داده شده است. کلاس Font دارای 3 پارامتر ورودی است که پارامتر اول نام فونت ، پارامتر دوم نوع فونت و پارامتر سوم اندازه فونت است .

Font font = new Font("Tahoma" , Font.BOLD , 10 );

 

JLabel title = new JLabel("Want a Raise?", JLabel.CENTER);

title.setForeground(Color.white);

استفاده از HTML در JLabel

یکی از قابلیتهای جدیدی که به کنترلهای Swing اضافه شده است ، استفاده از تگهای HTML است . به عنوان مثال می توان در JLabel متنی با فونتهای متفاوت و رنگهای مختلف با استفاده از تگهای HTML ایجاد کرد . کد زیر نحوه انجام این کار را نشان می دهد .

String labelText = "<html><FONT COLOR = RED>Red </font> " and +

              "<FONT COLOR = BLUE > Blue </FONT> Text </html>";

JLabel colorLabel = new JLabel(labelText , JLable.CENTER) ;

خروجی کد فوق یک JLabel است که در متن آن کلمه Red با رنگ قرمز و کلمه Blue با رنگ آبی نوشته شده است . به این نکته توجه داشته باشید که استفاده از تگ <HTML> با حروف بزرگ موجب ایجاد یک خطا در برنامه خواهد شد و حتما باید از حروف کوچک استفاده کرد .