java程序怎样在点击按钮后在当前窗体的布局中d出一个新窗体

java程序怎样在点击按钮后在当前窗体的布局中d出一个新窗体,第1张

为JButton添加事件,触发事件后构建备此一个新的窗体

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)

}

}

已经测试通过!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11994310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存