JButton b = new JButton("添加按钮监听")
// 添加按钮监听
b.addActionListener(this)
…………
//实现监听方法
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//获取监听 组件的文本
String str = e.getActionCommand()
if("添加宏滚坦按钮监听".equals(str)) {
//在这里新建窗口,或者另外建一个窗口类,在这里new那个类
}
}
有问题追问吧,蔽桐good luck!~
第一个窗体LoginFrame.java:package winRelation
import java.awt.Dimension
import java.awt.Rectangle
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JOptionPane
public class LoginFrame extends JFrame {
JButton button = new JButton("点击我")
class LoginOKAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "将进入另一个窗体!")
new MainFrame()
setVisible(false)
}
}
public LoginFrame(){
super()
this.setResizable(false)
this.setSize(new Dimension(300, 205))
this.setTitle("第一个窗体")
this.setLayout(null)
this.setDefaultCloseOperation(EXIT_ON_CLOSE)
this.setLocation(300, 200)
this.setVisible(true)
this.getContentPane().add(button, null)
button.setBounds(new Rectangle(111, 70, 78, 27))
button.addActionListener(new LoginOKAction())//给按钮加事件戚让监听器
}
public static void main(String[] args) {
new LoginFrame()
}
}
第二高睁局个窗体MainFrame.java:
package winRelation
import java.awt.BorderLayout
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import javax.swing.JButton
import javax.swing.JDesktopPane
import javax.swing.JFrame
import javax.swing.JInternalFrame
import javax.swing.JMenu
import javax.swing.JMenuBar
import javax.swing.JMenuItem
import javax.swing.JToolBar
public class MainFrame extends JFrame{
private static final JDesktopPane DESKTOP_PANE = new JDesktopPane()
public MainFrame() {
super("这是主窗体")
setSize(640, 480)
//菜单设置
JMenuBar menuBar = new JMenuBar()
this.setJMenuBar(menuBar)
JMenu menu1 = new JMenu("菜单1")
JMenu menu101 = new JMenu("菜单101")
JMenuItem menu10101 = new JMenuItem("菜单10101")
JMenuItem menu102 = new JMenuItem("菜单早烂102")
menu102.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addIFame(new InternalFrame())
}
})
menu101.add(menu10101)
menu1.add(menu101)
menu1.add(menu102)
JMenu menu2 = new JMenu("菜单2")
menuBar.add(menu1)
menuBar.add(menu2)
this.getContentPane().add(DESKTOP_PANE)
this.setVisible(true)
}
public static void addIFame(JInternalFrame iframe) { // 添加子窗体的方法
DESKTOP_PANE.add(iframe)
}
public static void main(String[] args) {
new MainFrame()
}
}
第三个窗体(MainFrame中的窗体)InternalFrame.java:
package winRelation
import javax.swing.JButton
import javax.swing.JInternalFrame
public class InternalFrame extends JInternalFrame{
public InternalFrame() {
super()
setClosable(true)
setIconifiable(true)
setTitle("内部窗体")
setBounds(50,50,400,300)
setVisible(true)
}
}
已经测试通过!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)