CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  GUI 设计

这个TextField的显示为什么总是不完全?

楼主mixianger(米香儿)2006-03-01 13:44:48 在 Java / GUI 设计 提问

程序:  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
   
  public   class   TestInput   extends   Container  
  {  
                  int   x=0;  
                  int   Height=0,Width=0;  
                   
                  TextField   textfield;  
                  JPanel   panel;  
                  String   text="";  
                  Dimension   dt;  
                  Dimension   dc;  
                   
                  public   TestInput()  
                  {  
                                  super();  
                                  panel=new   JPanel();  
                                  textfield=new   TextField(15);  
   
                                  textfield.setLocation(200,0);  
                                  panel.add(textfield);  
                                  this.add(panel);  
                  }  
                   
                  public   int   getWidth()  
                  {  
                                  return   Width=301;  
                  }  
                   
                  public   int   getHeight()  
                  {  
                                  return   Height=25;  
                  }  
                   
  }  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
   
  public   class   TestFrame   extends   JFrame  
  {  
                  public   TestFrame()  
                  {  
                                  JFrame   f=new   JFrame("Test");  
                                   
                                  TestInput   input=new   TestInput();  
                          input.setLocation(0,20);  
                                  System.out.println("Input's   width:   "+input.getWidth()+","+"Input's   heitht:   "+input.getHeight());  
                                   
                                  this.setLayout(new   BorderLayout());  
                                  getContentPane().add("North",new   Label("This   is   a   test   label!This   is   a   test   label!These   are   books   for   the   students!"));  
                                  getContentPane().add("Center",input);  
                                  getContentPane().add("South",new   Label("This   is   a   test   label!"));  
                  }  
                  public   static   void   main(String   args[])  
                  {  
                                  TestFrame   app=new   TestFrame();  
                                  app.setSize(500,400);  
                                  app.setVisible(true);  
                                   
                                  app.addWindowListener(new   WindowAdapter()  
                                  {  
                                                  public   void   windowClosing(WindowEvent   e)  
                                                  {  
                                                                  System.exit(0);  
                                                  }  
                                  });  
                  }  
  }  
  显示出来以后,那个TextField总是向左偏移了一些,显示不完全。不明白为什么?  
  请各位大侠赐教! 问题点数:20、回复次数:6Top

1 楼f_acme(沧海一声笑)回复于 2006-03-01 23:26:17 得分 3

会不会是那个Input继承了Container的缘故?看不出来。Top

2 楼f_acme(沧海一声笑)回复于 2006-03-02 09:15:41 得分 10

把继承container改为继承JPanle就可以了。Top

3 楼f_acme(沧海一声笑)回复于 2006-03-02 09:16:46 得分 7

import   java.awt.*;  
  import   javax.swing.*;  
   
  class   TestInput   extends   JPanel   {  
  int   x   =   0;  
   
  int   Height   =   0,   Width   =   0;  
   
  TextField   textfield;  
   
  JPanel   panel;  
   
  String   text   =   "";  
   
  Dimension   dt;  
   
  Dimension   dc;  
   
  public   TestInput()   {  
  super();  
  panel   =   new   JPanel();  
  panel.setLayout(new   FlowLayout());  
  textfield   =   new   TextField(15);  
  panel.add(textfield);  
  this.add(panel);  
  }  
   
  public   int   getWidth()   {  
  return   Width   =   301;  
  }  
   
  public   int   getHeight()   {  
  return   Height   =   25;  
  }  
  }  
   
  public   class   JustTest   extends   JFrame   {  
   
  public   JustTest()   {  
  super("Test");  
   
  TestInput   input   =   new   TestInput();  
  System.out.println("Input's   width:   "   +   input.getWidth()   +   ","  
  +   "Input's   heitht:   "   +   input.getHeight());  
   
  this.setLayout(new   BorderLayout());  
  add("North",new   Label("This   is   a   test   label!"));  
  add("Center",   input);  
  add("South",   new   Label("This   is   a   test   label   too!"));  
   
  setSize(500,   400);  
  setVisible(true);  
  }  
   
  public   static   void   main(String   args[])   {  
  new   JustTest();  
  }  
  }  
  Top

4 楼mixianger(米香儿)回复于 2006-03-02 10:28:14 得分 0

谢谢楼上的!Top

5 楼mixianger(米香儿)回复于 2006-03-02 11:07:37 得分 0

虽然现在这样是好用的,但是我把那个TestInput加入到Frame中去的时候是先加到一个Container中(这个Container没有用布局管理器,所以我才返回TestInput的Width和Height,用来计算坐标的。),再加入到Frame中,就算改为继承JPanel结果还是一样Top

6 楼mixianger(米香儿)回复于 2006-03-02 16:53:46 得分 0

还有别的更好的想法或解释吗?  
  期盼大家的帮助!  
  谢谢!Top

相关问题

  • 问题:Applet中的Label显示的字符串总是显示不完全。
  • label中的字显示不完全
  • treeview 节点显示内容不完全
  • 求救 用CListCtrl显示数据的时候 显示不完全
  • 请问如何能让TCppWebBrowser完全不显示边框
  • MSHFlexGrid就是无法完全显示recordset的所有记录
  • 怎么才能使form窗体完全显示出来???
  • 我的网页在IE5和IE6中完全显示不一样
  • 为什么Table的表格线不能完全显示出来
  • 如何在form显示完全后连接数据库?

关键词

  • swing
  • testinput
  • textfield
  • panel
  • jpanel
  • justtest
  • 继承
  • getwidth
  • jframe
  • getheight

得分解答快速导航

  • 帖主:mixianger
  • f_acme
  • f_acme
  • f_acme

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo