در این قسمت تیم کدگیت را با آموزش JLable در جاوا همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:
- شی گرایی در جاوا
- Constructor در جاوا
- متد در جاوا
- کلاسهای بی نام (کلاسهای تودرتو)
- JButton در جاوا
- ارث بری در جاوا
Java Swing
Swing قسمتی از کلاسهای پایهای جاوا بوده و برای طراحی و ساخت نرمافزارهای Window Base ساخته شده است. قبل از Swing کتابخانهای به نام AWT بوده است. قابلیتهایی مانند Light Weight (کم وزنی) و Customizable بودن، توانسته Swing را برتر از AWT قرار دهد. در این آموزش از کلاسهای Swing برای ساخت یک برچسب (Lable) استفاده میکنیم.
JFrame
JFrame در جاوا یک پنجره است که میتوان در آن Componentهایی مانند Jbutton، JLable، JTextField و …. قرار داد. همچنین میتوان هر کدام از Componentها را در Frame به صورت جدا صدا زده و به آنها دسترسی پیدا کرد. کمپوننتهای Swing باید حتما به JFrame اضافه شوند.
JLable در جاوا
JLable در جاوا یا همان برچسب برای نمایش یک خط متن استفاده میشود و همچنین متن مورد استفاده فقط برای خواندن و آگاه سازی کاربر میباشد. در این قسمت دو مثال JLable خواهیم زد. مثال اول نمایش دو برچسب با متن دلخواه است و در مثال دوم تعداد کلیک کاربر را بر روی Button با استفاده از JLable نمایش خواهیم داد.
مثال اول JLable
همانطور که در قسمت قبل توضیح داده شد، دو JLable را با پیغامی دلخواه بر روی صفحه، نمایش خواهیم داد. کد آن به صورت زیر است:
public static void main(String args[]) {
JFrame f = new JFrame("Label Example (CodeGate Team)");
JLabel l1, l2;
l1 = new JLabel("First Label.");
l1.setBounds(50, 50, 100, 30);
l2 = new JLabel("Second Label.");
l2.setBounds(50, 100, 100, 30);
f.add(l1);
f.add(l2);
f.setSize(300, 300);
f.setLayout(null);
f.setVisible(true);
}
همانطور که در کد بالا مشاهده میکنید ابتدا یک Jframe ساخته و سپس Jlable به نام l1 و l2 تعریف کردهایم. در Constructor دو متن First Lable و Second Lable نوشتهایم. این همان متنی است که کاربر آن را میبیند.در آخر این دو Lable را به Frame اضافه کرده ایم.
مثال دوم JLable
در مثال دوم JLable در جاوا، میخواهیم با کلیک بر روی Button شمارندهای تعداد کلیکها را ذخیره و بر روی Jlable نمایش دهیم. کد آن به صورت زیر میباشد:
public class TestLableExample2 extends JFrame implements ActionListener {
JLabel l;
JButton b;
int counter=0;
TestLableExample2() {
l = new JLabel("Click Button");
l.setBounds(50, 100, 250, 20);
b = new JButton("Click Me!");
b.setBounds(50, 150, 95, 30);
b.addActionListener(this);
add(b);
add(l);
setSize(400, 400);
setLayout(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
try {
counter++;
l.setText("you clicked " + counter+" times");
} catch (Exception ex) {
System.out.println(ex);
}
}
public static void main(String[] args) {
new TestLableExample2();
}
}
در کد بالا یک کلاس ساخته که از JFrame ارث بری میکند. همچنین هنگام کلیک برروی Button نیاز است کلاس ما ActionListener را Implements کند. ما دو فیلد JButton و JLable برای نمایش به کاربر استفاده کردهایم و یک فیلد دیگر به نام counter برای شمارش تعداد کلیک برروی Button استفاده کردهایم. در Constructor تنظیمات لازم را انجام دادیم. همچنین متد ActionPerformed وقتی بر روی دکمه کلیک میشود اجرا خواهد شد، پس ما شمارنده خود را در این قسمت با کمک متد settext در Jlable نمایش میدهیم. در آخر یک Main مینویسیم که کلاس ما را صدا بزند.