very easyimport javax.swing.*;
import javax.swing.event.*;class QQQ extends JFrame
{
JDesktopPane desk = new JDesktopPane();
JInternalFrame if1 = new JInternalFrame();
JButton bt1 = new JButton("button1");
JButton bt2 = new JButton("button2"); QQQ()
{
setContentPane(desk);
desk.add(if1);
JPanel p = new JPanel();
p.add(bt1);
p.add(bt2);
if1.getContentPane().add(p);
if1.addInternalFrameListener(new MyListener());
if1.reshape(10,10,100,100);
if1.setVisible(true);
setBounds(100,100,400,400);
setVisible(true);
} public static void main(String[] args)
{
new QQQ();
}
class MyListener extends InternalFrameAdapter
{
public void internalFrameActivated(InternalFrameEvent e )
{
bt1.requestFocus();
} };
}
import javax.swing.event.*;class QQQ extends JFrame
{
JDesktopPane desk = new JDesktopPane();
JInternalFrame if1 = new JInternalFrame();
JButton bt1 = new JButton("button1");
JButton bt2 = new JButton("button2"); QQQ()
{
setContentPane(desk);
desk.add(if1);
JPanel p = new JPanel();
p.add(bt1);
p.add(bt2);
if1.getContentPane().add(p);
if1.addInternalFrameListener(new MyListener());
if1.reshape(10,10,100,100);
if1.setVisible(true);
setBounds(100,100,400,400);
setVisible(true);
} public static void main(String[] args)
{
new QQQ();
}
class MyListener extends InternalFrameAdapter
{
public void internalFrameActivated(InternalFrameEvent e )
{
bt1.requestFocus();
} };
}
要鼠标击中 JInternalFrame 才使它产生
internalFrameActivated(InternalFrameEvent e );
能不能使它自动产生 internalFrameActivated(InternalFrameEvent e );
或者有什么其它更方便的方法呢?
谢谢
这个例子中,你点击open,打开两个新窗口
用if1.setSelected(true);来使窗口1激活
再用txt.requestFocus();来让文本框获得焦点如果忘了先激活窗口1,就设窗口1上的文本矿焦点,
你会看到一个有意思的bug,窗口2的Title Bar是蓝色的,
表示当前活动窗口,窗口2的Title Bar是灰色的,但是,
窗口2的JTextField却可以接受用户输入,呵呵switch1和switch2两个按钮可以切换窗口import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class QQQ extends JFrame
{
JDesktopPane desk = new JDesktopPane();
JInternalFrame if1 = new JInternalFrame();
JInternalFrame if2 = new JInternalFrame();
JButton bt1 = new JButton("Switch 1");
JButton bt2 = new JButton("Switch 2");
JButton btOpen = new JButton("Open");
JTextField txt = new JTextField("I got focus!"); QQQ()
{
JPanel temp = new JPanel();
temp.add(bt1);
temp.add(bt2);
temp.add(btOpen);
getContentPane().add(temp, BorderLayout.NORTH);
getContentPane().add(desk, BorderLayout.CENTER);
desk.add(if1);
desk.add(if2);
if1.getContentPane().add(txt, BorderLayout.NORTH);
if1.reshape(10,10,100,100);
if2.reshape(30,30,100,100);
bt1.addActionListener(new MyListener());
bt2.addActionListener(new MyListener());
btOpen.addActionListener(new MyListener());
setBounds(100,100,400,400);
show();
} public static void main(String[] args)
{
QQQ q = new QQQ();
}
class MyListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
if(e.getSource()==bt1)
if1.setSelected(true);
else if(e.getSource()==bt2)
if2.setSelected(true);
else{
if1.setVisible(true);
if2.setVisible(true);
if1.setSelected(true);
txt.requestFocus();
}
}
catch (Exception ex)
{
} }
};
}