java 另一个窗口_java点击按钮,出现另一个窗口

该博客展示了如何使用Java Swing创建两个窗体:LoginFrame和MainFrame。LoginFrame包含一个按钮,点击后显示消息框并隐藏LoginFrame,打开MainFrame。MainFrame为一个主窗口,内含一个JDesktopPane,用于添加子窗体,还设置了菜单栏和菜单项,菜单项点击事件可添加新的JInternalFrame内部窗体。
摘要由CSDN通过智能技术生成

第一个窗体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:

0818b9ca8b590ca3270a3433284dd417.png

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);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值