小弟最近在学JAVA 
做一个小程序时,程序没问题能走,就是没有界面出来 
请大哥大姐的帮帮小弟 
程序主要是要实现通过登录后能编辑文本,并保存! 
下面就是我写的程序,等通过编译,就是没有界面! 
import java.io.*; 
import java.awt.event.*; 
import java.awt.*; 
//import javax.swing.JOptionPane; public class sword extends Panel 

public static void main(String args[]) 

    log aa=new log(); 
System.out.println("aa OK"); 


class log extends Panel implements ActionListener 

//Panel panel; 
TextField name,password; 
Button button; 
  
log() 
{//setLayout(new BorderLayout() ); 
//panel=new Panel(); name=new TextField(10); 
add(new Label("名字")); 
password=new TextField(10); 
add(new Label("密码")); button=new Button("登录"); 
//panel. 
add(name,BorderLayout.CENTER); 
//panel. 
add(password,BorderLayout.NORTH); 
//panel. 
add(button); 
//add(panel); 
button.addActionListener(this); 
    System.out.println("log OK"); 

public void actionPerformed(ActionEvent e) 

  if(e.getSource()==button) 
  { 
if(name.getText()=="sword") 

int a=Integer.parseInt(password.getText()); 
if(a==1234) 

FileWindows win=new  FileWindows (); 

// else 
// { 
// JOptionPane.showMessageDialog(this,"密码错误","提示",JOptionPane.WARNTING_MESSAGE); 
// } 
}              
  } } 

class  FileWindows extends Frame implements ActionListener 
{ FileDialog filedialog_load, filedialog_save;    //声明两个文件对话框 
MenuBar menubar; 
Menu menu; 
MenuItem Open,Save; 
TextArea text; 
BufferedReader bufferIn; 
FileReader in; 
FileReader file_reader; 
BufferedWriter out; 
FileWriter tofile; 
FileWindows() 

super("Dialog"); 
text=new TextArea(10,10); 
text.setBackground(Color.cyan); 
setSize(340,340); 
setVisible(true); 
menubar=new MenuBar(); 
    menu=new Menu("file"); 
    Open=new MenuItem("Open"); 
    Save=new MenuItem("Save"); 
Open.addActionListener(this); 
Save.addActionListener(this); 
menu.add(Open); 
        menubar.add(menu); 
        setMenuBar(menubar); 
        menu.add(Save); 
        add(text); 
filedialog_load =new FileDialog(this,"open dialog",FileDialog.LOAD); 
    filedialog_save =new FileDialog(this,"save dialog",FileDialog.SAVE); 
      filedialog_load.addWindowListener(new WindowAdapter() 
        { public void windowClosing(WindowEvent e) 
            {filedialog_load.setVisible(false); 
      } 
}); 
filedialog_save.addWindowListener(new WindowAdapter() //对话框增加适配器 
        { public void windowClosing(WindowEvent e) 
            {filedialog_save.setVisible(false); 
      } 
}); 
addWindowListener(new WindowAdapter() 

  public void windowClosing(WindowEvent e) 
  { 
System.exit(0); 

}); } public void actionPerformed(ActionEvent e) 

if(e.getSource()==Open) 
{filedialog_load.setVisible(true); 
text.setText(null); 
String s; 
if (filedialog_load.getFile()!=null) 

try { 
text.setText(null); 
File file=new 
File (filedialog_load.getDirectory(),filedialog_load.getFile()); 
file_reader=new FileReader(file); 
bufferIn=new BufferedReader(file_reader); 
while ((s=bufferIn.readLine())!=null) 
{text.append(s+'\n'); 

bufferIn.close(); 
} catch(IOException exp){System.out.println(exp);} 


else if(e.getSource()==Save) 
{filedialog_save.setVisible(true); 
if (filedialog_save.getFile()!=null) 

try 

  File file=new 
  File(filedialog_save.getDirectory(),filedialog_save.getFile()); 
  tofile=new FileWriter(file); 
  out=new BufferedWriter(tofile); 
  out.write(text.getText(),0,(text.getText()).length()); 
  out.flush(); 
  out.close(); 
  tofile.close(); 

catch(IOException e2){} 


} }

解决方案 »

  1.   

    是不是没把Panel add进frame中?我猜的
      

  2.   

    class log extends Panel   这样怎么可能显示出登录窗体?
      

  3.   

    一个程序里只能有一个frame
    所以登录界面那个就不能用frame了
    大哥大姐们请帮帮忙
    最好能把程序调一下
    弄出来
    谢谢!
      

  4.   

    ??
    我的是先出来登录(继承panel的log类)
    输入密码和用户名
    点击按钮打开操作(继承的frame的FileWindows类)
      

  5.   

    你搞错了
    log应该是登录界面吧
    它应该继承JFrame
    当你登录后,会出现新的Frame,
    你可以把原来的JFrame关掉。用Panel是出不来的。而且你的程序里有些不必要的继承,使程序很乱。
      

  6.   

    如果你要将一个窗口关闭然后显示另外一个窗口的话, 
    JFrame1.setVisible(false); 
    JFrame2.serVisible(true); 
    加入到事件监听器里面去。
    如果是在一个窗口内,
    改变布局和组件来达到改变界面的话,
    getContentPane.removeAll();//移出了所有的组件 
    getContentPane.validateTree();//重新布局和放组件 
    //加入你的新布局和组件 
    JFrame.repaint();//通知界面进行重画组件