大家好,有谁能够帮我一把
我做了一个JFrame想要在JFrame里面做一个登陆,登陆用得JDialog窗体,是JFrame中唯一的不能点别的这样一个JDialog窗格,验证数据库通过后想把JInternalFrame内嵌在先前的JFrame中,可是做完之后总也new 不出JInternalFrame,太可气了,不知道是哪里出了问题,拜托大家帮忙看一下,好吗,我非常的着急,谢谢各位!JFrame->JMenu点击->JDialog->验证成功->JInternalFrame(show不出来)
代码要贴吗?
我做了一个JFrame想要在JFrame里面做一个登陆,登陆用得JDialog窗体,是JFrame中唯一的不能点别的这样一个JDialog窗格,验证数据库通过后想把JInternalFrame内嵌在先前的JFrame中,可是做完之后总也new 不出JInternalFrame,太可气了,不知道是哪里出了问题,拜托大家帮忙看一下,好吗,我非常的着急,谢谢各位!JFrame->JMenu点击->JDialog->验证成功->JInternalFrame(show不出来)
代码要贴吗?
JInternalFrame不是简单的new一个就可以的,要得到ContentPane并往上添加
extendsMain.java
----------------
class extendsMain
{
public static void main(String []args)
{
new extendsJFrame().show();
}
}
------------------
extendsJFrame.java
------------------
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class extendsJFrame extends JFrame implements ActionListener
{
JMenuBar jmb=new JMenuBar();
JMenu jm=new JMenu("菜单");
JMenuItem jmi=new JMenuItem("问题");
extendsJFrame()
{
super("弹出JDialog");
Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();
this.setSize(dim.width,dim.height-25);
this.setJMenuBar(jmb);
jmb.add(jm);
jm.add(jmi);
jmi.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jmi)
{
extendsJDialog jd=new extendsJDialog();
jd.show();
}
}
}
-------------------
extendsJDialog.java
-------------------
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class extendsJDialog extends JDialog implements ActionListener
{
JButton jb=new JButton("打开JInternalFrame");
extendsJDialog()
{
super(new JFrame(),"登陆",true);
this.setBounds(300,200,0,0);
this.getContentPane().add(jb);
jb.addActionListener(this);
this.pack();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jb)
{
System.out.println("你是好人吗,骗我");
extendsJInternalFrame jif=new extendsJInternalFrame();
jif.show();//为什么show不出来?
}
}
}
--------------------------
extendsJInternalFrame.java
--------------------------
import java.awt.*;
import javax.swing.*;
public class extendsJInternalFrame extends JInternalFrame
{
extendsJInternalFrame()
{
super("我是好人");
this.setSize(200,200);
System.out.println("别问我");
this.pack();
}
}
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JInternalFrame
JInternalFrame
不是顶层窗体 要放JDesktopPane 中才行
extendsJInternalFrame.java
--------------------------import java.awt.*;
import javax.swing.*;
public class extendsJInternalFrame extends JInternalFrame
{
private JFrame frame = new JFrame();
private JDesktopPane pane = new JDesktopPane();
extendsJInternalFrame()
{
super("我是好人");
this.setSize(200,200);
System.out.println("别问我");
this.setResizable(true);
pane.add(this);
frame.add(pane);
frame.setSize(600, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
干嘛还要费尽的再点一下 弹出另外一个
很晕菜 -_-||
大家出出主意,怎样做才好我想一个JFrame里面出个JDialog,点击后出现JInternalFrame..可这个JINternalFrame不知道怎么加到原JDesktopPane上 原先JFrame的JDesktopPane加上了JDialog,连数据库成功后我想把他关了,关闭JDialog,弹出JInternalFrame
把首个JDesktopPane传过去,关闭JDialog对话框传过来的JDesktopPane加上JInternalFrame,可JInternalFrame出不来!有谁能让它出来?给点建议 谢谢
setVisible(true) ;
这样就可以了
很晕菜 -_-||
大家出出主意,怎样做才好我想一个JFrame里面出个JDialog,点击后出现JInternalFrame..可这个JINternalFrame不知道怎么加到原JDesktopPane上 原先JFrame的JDesktopPane加上了JDialog,连数据库成功后我想把他关了,关闭JDialog,弹出JInternalFrame=================================你的代码里 没有出现 JDesktopPane
我这边测试过 没有问题
不知道你那边抛什么异常?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;public class JDesktopPaneExample
{
public static void main(String[] args)
{
final JFrame f = new JFrame("JDesktopPaneExample"); final JDesktopPane pane = new JDesktopPane(); JMenuBar jmb = new JMenuBar();
JMenu jm = new JMenu("菜单");
JMenuItem jmi = new JMenuItem("问题"); jmi.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent e)
{
new CustomDialog((Frame) f, pane);
}
}); jmb.add(jm);
jm.add(jmi); f.setJMenuBar(jmb);
f.add(pane);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setExtendedState(JFrame.MAXIMIZED_BOTH);
f.setVisible(true);
}
}class CustomDialog extends JDialog
{
private JDesktopPane pane;
private JButton button; public CustomDialog(Frame owner, JDesktopPane p)
{
super(owner, true);
pane = p; button = new JButton("Add JInternalFrame");
button.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent e)
{
JInternalFrame frame = new JInternalFrame();
frame.setSize(300, 300);
pane.add(frame);
frame.setVisible(true);
}
}); this.add(button);
this.pack();
this.setLocationRelativeTo(null);
this.setVisible(true);
}
}