哪位帮我看一下为什么窗口中的组件不显示?谢谢! 用JPanel代替Container 生成实例 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.*;import java.awt.event.*;import javax.swing.*;class TestFrame extends JFrame implements ActionListener { JPanel pane; JButton but; JTextField text; TestFrame(){ super("testframe"); pane=new Container(); but=new Button("show"); text=new TextField(""); pane.add(but); pane.add(text); getRootPane().setContentPane(pane);//add(pane); setBounds(0,0,300,100); setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void actionPerformed(ActionEvent e){ if(e.getSource()==but) text.setText("Button Pressed"); }}public class test1{public static void main(String args[] ){testframe test=new testframe();}} testframe(){ super("testframe"); pane=new Container(); <----------这里改为pane=new Panel(),因为Container是所有组件的父类,实例化对象无意义。 but=new Button("show"); text=new TextField(""); setVisible(true); <-------这句放的太靠前了,你的组件还没加到窗口中你就让它显示,它当然里面什么东西都没有了,请将这句放到下面。 setBounds(0,0,300,100); pane.add(but); pane.add(text); add(pane); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } setVisible(true); 放在上面没有问题的 setVisible(true); 的位置不对阿怎么能放得那么靠前阿!!还什么都没有呢 问一下container的概念以及它和实例的区别究竟是什么?我把所有container都换成了panel,但在运行时,编译器提示把add(pane)换成Frame.getConstantPanel().add(pane),为什么? 在JFrame中添加控件只能在它的内容板上加frame.getContentPane().add(pane)或者frame.setContentPane(pane)如果是在Frame上就可以直接加控件 再者不建议awt组件和swing组件混合着使用。 setVisible(true)你就在放所有的组件加上去之后吧放在前面当然也可以,只是最后你还得加上一句validata()setVisible(true)之后就会调用Frame的paint方法去安排显示了 多谢kypfos指点,痛感自己的Swing一知半解,能不能介绍几本比较好的swing方面的书? 既是通讯系统 要求一个主机 和多个客户端 谁能给我写一个框架啊 java 模拟购物车 不可达代码 急!100分~关于解析.txt文件的问题! 请指教。 请帮我解决个问题 jsp jdbc访问sqlserver2000异常 急急急 如何使用Swing 截取指定屏幕大小并转换为图片存取?不监听键盘(可以监听butten或者其他组件)。 呼叫大神 解迷惑 apache+tomcat整合问题,附源码,请近来看看! 难道无高手,高手大虾们,在"swing"中如何给菜单项加如快捷键如ctrl v ---先谢了 Hotspot的使用?急需了解! 请问JFM支持哪种格式的文件?
import java.awt.event.*;
import javax.swing.*;class TestFrame extends JFrame implements ActionListener
{
JPanel pane;
JButton but;
JTextField text;
TestFrame()
{
super("testframe");
pane=new Container();
but=new Button("show");
text=new TextField("");
pane.add(but);
pane.add(text);
getRootPane().setContentPane(pane);//add(pane);
setBounds(0,0,300,100);
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==but)
text.setText("Button Pressed");
}
}
public class test1
{
public static void main(String args[] )
{testframe test=new testframe();}}
{
super("testframe");
pane=new Container(); <----------这里改为pane=new Panel(),因为Container是所有组件的父类,实例化对象无意义。
but=new Button("show");
text=new TextField("");
setVisible(true); <-------这句放的太靠前了,你的组件还没加到窗口中你就让它显示,它当然里面什么东西都没有了,请将这句放到下面。
setBounds(0,0,300,100);
pane.add(but);
pane.add(text);
add(pane);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
怎么能放得那么靠前阿!!
还什么都没有呢
我把所有container都换成了panel,但在运行时,编译器提示把add(pane)换成
Frame.getConstantPanel().add(pane),为什么?
frame.getContentPane().add(pane)
或者
frame.setContentPane(pane)如果是在Frame上就可以直接加控件
痛感自己的Swing一知半解,
能不能介绍几本比较好的swing方面的书?