import java.awt.*;
class FirstWindow extends Frame
{ MenuBar menubar;
Menu menu;
MenuItem item1,item2;
FirstWindow(String s)
{ setTitle(s);
Toolkit tool=getToolkit();
Dimension dim=tool.getScreenSize();
setBounds(0,0,dim.width,dim.height/2);
menubar=new MenuBar();
menu=new Menu("文件");
item1=new MenuItem("打开");
item2=new MenuItem("保存");
menu.add(item1);
menu.add(item2);
menubar.add(menu);
setMenuBar(menubar);
setVisible(true);
}
}
public class Example7_1
{ public static void main(String args[])
{ FirstWindow win=new FirstWindow("一个带菜单的窗口");
}
}
上面的这个程序,程序入口应该:
public static void main(String args[])
{ FirstWindow win=new FirstWindow("一个带菜单的窗口"); }
那么入口函数进去了执行new FirstWindow("一个带菜单的窗口")方法,程序是怎么去执行第一个FirstWindow类的呢,我 感觉好像没有去调用或执行第一个类啊。即便是通过new FirstWindow("一个带菜单的窗口")这句话去调用了一个类的
FirstWindow(String s),方法,那么这个方法前面的
MenuBar menubar;
Menu menu;
MenuItem item1,item2;这些语句也没有执行,那么后面怎么能直接用menubar,menu,item1,item2这些对象呢?原理上有些不明白,麻烦来帮解释下.
第二个程序:
import java.awt.*;
class WindowText extends Frame
{ TextField text1,text2;
WindowText(String s)
{ super(s);
setLayout(new FlowLayout());
text1=new TextField("输入密码:",10);
text1.setEditable(false);
text2=new TextField(10);
text2.setEchoChar('*');
add(text1);
add(text2);
setBounds(100,100,200,150);
setVisible(true);
validate();
}
}
public class Example7_2
{ public static void main(String args[])
{ WindowText win=new WindowText("添加了文本框的窗口");
}
}
程序中的这些代码:
add(text1);
add(text2);
setBounds(100,100,200,150);
setVisible(true);
怎么能直接用方法呢,我感觉应该是用“对象.add(text1);对象.add(text2);对象.setBounds(100,100,200,150);”这样的格式,即对象加点来调用这些方法才对吧?
第三个问题:
java中的“焦点”(比如获得文本框中的输入焦点)究竟是什么意思,麻烦用通俗易懂的话来解释下,谢谢
class FirstWindow extends Frame
{ MenuBar menubar;
Menu menu;
MenuItem item1,item2;
FirstWindow(String s)
{ setTitle(s);
Toolkit tool=getToolkit();
Dimension dim=tool.getScreenSize();
setBounds(0,0,dim.width,dim.height/2);
menubar=new MenuBar();
menu=new Menu("文件");
item1=new MenuItem("打开");
item2=new MenuItem("保存");
menu.add(item1);
menu.add(item2);
menubar.add(menu);
setMenuBar(menubar);
setVisible(true);
}
}
public class Example7_1
{ public static void main(String args[])
{ FirstWindow win=new FirstWindow("一个带菜单的窗口");
}
}
上面的这个程序,程序入口应该:
public static void main(String args[])
{ FirstWindow win=new FirstWindow("一个带菜单的窗口"); }
那么入口函数进去了执行new FirstWindow("一个带菜单的窗口")方法,程序是怎么去执行第一个FirstWindow类的呢,我 感觉好像没有去调用或执行第一个类啊。即便是通过new FirstWindow("一个带菜单的窗口")这句话去调用了一个类的
FirstWindow(String s),方法,那么这个方法前面的
MenuBar menubar;
Menu menu;
MenuItem item1,item2;这些语句也没有执行,那么后面怎么能直接用menubar,menu,item1,item2这些对象呢?原理上有些不明白,麻烦来帮解释下.
第二个程序:
import java.awt.*;
class WindowText extends Frame
{ TextField text1,text2;
WindowText(String s)
{ super(s);
setLayout(new FlowLayout());
text1=new TextField("输入密码:",10);
text1.setEditable(false);
text2=new TextField(10);
text2.setEchoChar('*');
add(text1);
add(text2);
setBounds(100,100,200,150);
setVisible(true);
validate();
}
}
public class Example7_2
{ public static void main(String args[])
{ WindowText win=new WindowText("添加了文本框的窗口");
}
}
程序中的这些代码:
add(text1);
add(text2);
setBounds(100,100,200,150);
setVisible(true);
怎么能直接用方法呢,我感觉应该是用“对象.add(text1);对象.add(text2);对象.setBounds(100,100,200,150);”这样的格式,即对象加点来调用这些方法才对吧?
第三个问题:
java中的“焦点”(比如获得文本框中的输入焦点)究竟是什么意思,麻烦用通俗易懂的话来解释下,谢谢
/*在你FirstWindow win=new FirstWindow("一个带菜单的窗口");时就已经执FirstWindow(String s),这个构选函数的啊.而在构造函数前就已经执行了
MenuBar menubar;
Menu menu;
MenuItem item1,item2
*/
add(text1);
add方法是从Frame继承过来的光标停留在输入框时,这里该输入框就有输入焦点
MenuBar menubar;Menu menu;MenuItem item1,item2;这几个东西只是声明了几个变量而已,真正用到的是在程序中实例化的时候。
menubar=new MenuBar();
menu=new Menu("文件");
item1=new MenuItem("打开");
item2=new MenuItem("保存");
你要想理解变量的东西,你要知道程序的运行机制,其实那几个变量时在内存中创建了,需要了解一点操作系统的知识。第三个:"焦点"通俗的讲就是让人家把目光集中到你身上,在图形用户界面中就是把输入的权利赋予某个文本域之类的。
FirstWindow()是构造方法,是用来给属性初始化的。
menubar等是该类的属性,该类的所有方法都是可以访问它们。第二个:
this.可以省略。第三个:
“焦点”就是鼠标光标停留的位置。
FirstWindow 继承Frame 你用的应该是JAVA的AWT 也就是说你的FirstWindow拥有父类Frame的所有方法FirstWidnow()是你的FirstWidnow类中的构造函数....在Main主函数中 FirstWindow win=new FirstWindow("一个带菜单的窗口"); 创建的是一个FirstWindow的实例....Main函数在执行这条语句后 会调用构造函数里面的内容,你代码的意思是在这个窗口中添加菜单条,菜单,菜单项.....这些语句的实现由编辑程序帮你完成...程序运行后你就可以看见你的窗口中有你添加的这些组件.......
this代表的就是当前类的实例对象....类是不能直接使用对应方法的 只有实例化后产生对象后才能使用对应Class的方法你代码里面的方法 来源于WindowText这个类 而这个类是你自定义的 是没有法方可以用的..应为他继承Frame 所以它拥有Frame的所有法方...子类可以拥有父类的所有法方,并且拥有自己独有的方法...继承方面的问题...