PDA

View Full Version : سوال: قرار دادن فوکوس بر روی شی



هانی هاشمی
یک شنبه 06 اردیبهشت 1388, 07:50 صبح
دستوری هست که بشه فوکوس رو بر روی یک شی مثل jeditorpane برد ؟؟

اگه متوجه نشدید : مثلا کاربر در حال تایپ کردن در jeditorpane هست و می خواد نوشتش bold بشه وفتی بر روی دکمه bold کلیک می کنه فوکوس از روی jeditor pane می ره و بر روی دکمه bold قرار می گیره و کاربر مجبور می شه که با موس روی jeditorpane کلیک کنه تا بتونه ادامه تایپش رو انجام بده.

ممنون :لبخندساده:

saeedIRHA
یک شنبه 06 اردیبهشت 1388, 13:11 عصر
در قسمت actionperformed دکمهت بعد از اينکه font ت تو به اون چيزی که ميخوای ست کردی
ميتونی تابع setFocus برای component مورده نظرت رو صدا کنی،
اگر با مشکل برخوردی با اين وجود ميتونی focuslistener رو خودت درست کنی
برای پياده سازی focuslistener به لينک زير مراجعه کن:
http://www.java2s.com/Code/JavaAPI/org.eclipse.swt.widgets/TextsetFocus.htm
اگر سؤال موند بپرس ;-)

هانی هاشمی
دوشنبه 07 اردیبهشت 1388, 16:56 عصر
نشد :ناراحت:
کلاس swt رو هم اضافه کردم اما ارور زیر رو می ده :

Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3536 or swt-win32 in swt.library.path, java.library.path or the jar file
at org.eclipse.swt.internal.Library.loadLibrary(Libra ry.java:248)
at org.eclipse.swt.internal.Library.loadLibrary(Libra ry.java:159)
at org.eclipse.swt.internal.C.<clinit>(C.java:21)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:133)
at Main.main(Main.java:12)بی زحمت یه توضیح در مورد setfocus , FocusListener می دین و بگین چرا نیاز به کلاس swt داره
ممنون :چشمک:

java_nith
سه شنبه 08 اردیبهشت 1388, 16:02 عصر
برات یه کد نوشتن
txtArea.requestFocusInWindow();
به این خط دقت کن
این بد از اینکه دکمرو زادی فکوس رو به باکس وصل می‌کنه



import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Focus extends JFrame implements ActionListener {
private JButton btnBold;
private JTextField txtArea;

public Focus() {

init();
panel();
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setVisible(true);
}

public static void main(String[] args) {
new Focus();
}

public void init() {
btnBold = new JButton("Blod");
btnBold.addActionListener(this);
txtArea = new JTextField(40);
txtArea.addActionListener(this);
}

public void panel() {
setLayout(new GridLayout(2,2));
add(txtArea);
add(btnBold);
}

@Override
public void actionPerformed(ActionEvent e) {
if (btnBold == e.getSource()) {
Font b = new Font("Sans Serif", Font.BOLD, 16);
txtArea.setFont(b);
txtArea.requestFocusInWindow();

}
}
}