初学java,看教材上Swing包和awt包章节里的示例程序时,遇到的关于调用对象方法的一点小问题

先上示例程序

java文件1

Example10_8.java

public class Example10_8 {
public static void main(String[] args) {
WindowLiaoning win =new WindowLiaoning();
}
}

java文件2

WindowLiaoning.java

import javax.swing.*;
import java.awt.*;
public class WindowLiaoning extends JFrame{
JTextField text;
DigitDocumnet document;
public WindowLiaoning(){
init();
setBounds(100,100,300,200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
text = new JTextField(20);
setLayout(new FlowLayout());
document = new DigitDocumnet();
text.setDocument(document);
add(text);
}
}

java文件3

DigitDocumnet.java

import javax.swing.text.*;
public class DigitDocumnet extends PlainDocument{
int count = 1;
public void insertString(int offset,String s,AttributeSet a){
char c= s.charAt(0);
if(c<='9'&&c>='0'&&count<=8){
try{
super.insertString(offset, s, a);
count++;
}
catch(BadLocationException e){
}
}

}
public void remove(int offset, int length){
try{
super.remove(offset, length);
count--;
}
catch(BadLocationException e){}
}
}
这个demo包含三个java文件,功能是实现一个只能输入8个数字字符的文本框,这里有个小问题,就是在文本框里进行字符删除时,remove方法会被自动调用执行,这里我不太明白,参数length是如何指定的,书上说length初始化时为1,我们按回车键删除时都是一个字符一个字符删除的,是每删除一个字符调用一次吗,然后在文本框里一直按退格键backspace的话,count--为什么不会把count减到0以下呢?有些概念还不太清晰,望不吝赐教

1个回答

文本框组件是不是有个”写入锁定”之类的什么设定?具体的机制原理不太明白

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java里AWT包的复制黏贴
AWT中剪贴板相关操作和类都放在软件包 java.awt.datatransfer中 其中: ClipboardOwner:剪贴板所有者接口 Clipboard  类代表一个剪贴板的实例对象,这个剪贴板就可以是系统剪贴板,也可以是本地剪贴 。 Transferable:该接口的实例代表放进剪贴板中的传输对象。 DataFlavor:用于表述剪贴板中数据格式。 StringSelecti...
关于awt和swing的一点小问题请教一下
[code=java]import java.awt.*;rnimport java.awt.event.*;rnrnpublic class TankClient extends Frame rn rn rn int x = 50, y = 50;rn rn Image offScreenImage = null;rn rn public void paint(Graphics g) rn Color c = g.getColor();rn g.setColor(Color.RED);rn g.fillOval(x, y, 30, 30);rn g.setColor(c);rn rn y += 5;rn rn rn public void update(Graphics g) rn if(offScreenImage == null) rn offScreenImage = this.createImage(800, 600);rn rn Graphics gOffScreen = offScreenImage.getGraphics();rn Color c = gOffScreen.getColor();rn gOffScreen.setColor(Color.GREEN);rn gOffScreen.fillRect(0, 0, 800, 600);rn gOffScreen.setColor(c);rn paint(gOffScreen);rn g.drawImage(offScreenImage, 0, 0, null);rn rnrn public void lauchFrame() rn this.setLocation(400, 300);rn this.setSize(800, 600);rn this.setTitle("TankWar");rn this.addWindowListener(new WindowAdapter() rn public void windowClosing(WindowEvent e) rn System.exit(0);rn rn );rn this.setResizable(false);rn this.setBackground(Color.GREEN);rn setVisible(true);rn rn new Thread(new PaintThread()).start();rn rnrn public static void main(String[] args) rn TankClient tc = new TankClient();rn tc.lauchFrame();rn rn rn private class PaintThread implements Runnable rnrn public void run() rn while(true) rn repaint();rn try rn Thread.sleep(50);rn catch (InterruptedException e) rn e.printStackTrace();rn rn rn rn rnrnrn[/code]rnrn请问一下, 为什么当我用swing来写的时候效果很差, 我只是将frame改成JFrame, 还有一个问题就是, 为什么不能直接在JFrame上设置背景色呢, 谢谢了!
java可视化包awt
java.awt包用的很少啊,虽然已经快被淘汰了,今天偶尔工作用要用到。随即整理了一些基础。 先简单白话介绍下, 流程如下: 创建窗体 ——为窗体确定布局——创建组件并加入窗体中——增加事件。 直接上一个简单的demo,如下: package com.zp.myawt; import java.awt.Button; import java.awt.Frame; import java
计算器(JAVA)awt包
自己写的一个JAVA计算器程序,有点儿简单,主要的思想就是:在进行某种运算前先进行前一种运算。 class Operator implements ActionListener{ public void actionPerformed(ActionEvent e){ dotflag=true;numflag=false; temCount(judgeType(operator)); showBox.setText(new Double(result).toString()); operator=e.getActionCommand().toString(); nn=true; } }
请问一个关于java里AWT包和Swing包的关系问题?
最近刚刚在学习java,看一些基本语法和类,但看到Swing包函了AWT包的所有类,是不是在学习的过程中不需要看AWT包里的类的?谢谢高手指点!rn
java的.awt包和java.util包的区别
了解Java的不同包功能
Java Swing 的一点小问题!
rnimport java.awt.*;rnrnimport javax.swing.*;rnrnpublic class list rn public static void main(String args[]) rn // Container container = f.getContentPane();rn // 获得与JFrame关联的ContentPane,ContentPane的默认布局管理器是BorderLayout;rnrn // final Object rowData[][] = rn // "1", "one", "I" ,rn // "2", "two", "II" ,rn // "3", "three", "III" ;rn rn // final String columnNames[] = "姓名", "性别", "年龄","职务" ;rnrn final JTable Table = new JTable(20, 6);// 创建表格;rn Table.setRowHeight(25);// 设置表格的行高;rnrn JScrollPane scrollPane = new JScrollPane(Table);// 创建滚动条rnrn JFrame f = new JFrame("员工表");// 创建JFrame对象;rn f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 点关闭,停止进程rnrn JPanel NorthPanel = new JPanel();rn // 创建北面的JPanel对象;rn JLabel label = new JLabel("员工信息表");rn Font font = new Font("宋体", 10, 20);// 新建字体;rn label.setFont(font);// 应用字体;rn NorthPanel.add(label);// 把标签添加到NorthPanel中;rnrn JPanel SouthPanel = new JPanel();rn rn Button button1 = new Button("增加");rn rn Button button2 = new Button("删除");rn Button button3 = new Button("查找");rn Button button4 = new Button("修改");rnrn SouthPanel.add(button1);rn SouthPanel.add(button2);rn SouthPanel.add(button3);rn SouthPanel.add(button4);rnrn f.add(SouthPanel, BorderLayout.SOUTH);rn f.add(NorthPanel, BorderLayout.NORTH);// 加入标签”员工信息表“;rn f.add(scrollPane, BorderLayout.CENTER);// 把NorthPanel添加到container中;rnrn // f.setResizable(false);//定义窗口是否可调整大小rn f.setSize(700, 550);// 定义JFrame窗口大小;rn f.setLocationRelativeTo(f);// 窗口居中显示;rn f.setVisible(true);// 显示窗口rn rnrnrn有两个问题:rn1、想让表格只占窗口的一半(窗口目前的大小不变),就是设置表格的大小!rn2、设置Button的大小,我用setSize方法设置不管用啊!rnrn高手来帮帮忙!多谢啦!
java 调用awt包 打开windows文件夹
      今天在公司想自己写个小工具,开机打开自己的工作日志记录文件。以前一直用批处理文件进行脚本编写,执行class文件,然后再读写工作日志,将里面写入开机时间。今天本来想根据当前日期,自动创建目录,然后自动打开。如果按照惯性思维,是继续要用批处理文件的编写方式进行打开目录,但是突发奇想,java能不能直接打开调用呢?        于是上网搜了一下,还真有。java.awt.Desktop...
AWT/Swing本地增强包0.01(未完成)
源码及build文件,可实现AWT/Swing的半透明,不规则窗体等,尚未最后完成,偶是奸商^^
请教awt包和Swing包中的paint(),repaint(),update()问题
请教awt包和Swing包中的paint(),repaint(),update()问题,写一个学生信息管理的小程序,有三个界面板块rn第一个是:学生信息管理(学号SNo,系部SDep)rn第二个是:系部信息管理(系部SDep,系主任名称SMname)rn第三个是:成绩信息管理(学号SNo,课程名称Cname,课程成绩grade)rn这在个小程序中我想用只new次 学号lSNo,tSNo,和系部lSDep,tSDep,我用了CardLayout布局,遇到了二个问题,请各位指教rnrn另外对awt和swing中的三个方法paint(),repaint(),update()弄不清,这两个包中的三个方法是不是不同??rncode rn******************************************************************************************************rnimport javax.swing.*;rnimport java.awt.event.*;rnimport java.awt.*;rnimport java.sql.Connection;rnimport java.sql.DriverManager;rnimport java.sql.ResultSet;rnimport java.sql.Statement;rnclass StudentInfo implements ItemListenerrn final static String STUDENTPANEL = "学生信息管理";rn final static String DEPARTMENTPANEL = "系部信息管理";rn final static String SCOREPANEL = "成绩信息管理";rn private JFrame jf;rn private Container container;rn private JPanel cards;rn private String cardSwitchSign;rn private JLabel lMName; JTextField tMName;rn private JLabel lSDe; JTextField tSDe;rn private JLabel lSNo; JTextField tSNo;rn private JLabel lCName; JTextField tCName;rn private JLabel lGrade; JTextField tGrade;rn private JButton jb_add;rn private JButton jb_query;rn private JButton jb_update;rn private JButton jb_del;rn rn public void launchFrame()rn jf=new JFrame("学生信息修改器");rn jb_add=new JButton("添加");rn jb_query=new JButton("查询");rn jb_update=new JButton("更新");rn jb_del=new JButton("删除");rn rn lSDe=new JLabel("学生部门"); tSDe=new JTextField(40);rn lMName=new JLabel("系主任名称"); tMName=new JTextField(40);rn lSNo = new JLabel("学号"); tSNo = new JTextField(40);rn lCName = new JLabel("课程名称"); tCName = new JTextField(40);rn lGrade = new JLabel("课程成绩"); tGrade = new JTextField(40);rn jf.setLayout(null);rn container = jf.getContentPane();rn rn String comboBoxItems[] = STUDENTPANEL, DEPARTMENTPANEL, SCOREPANEL;rn JComboBox cb = new JComboBox(comboBoxItems);rn //cb.setSelectedIndex(0);rn cb.setEditable(false);rn cb.addItemListener(this);rn cb.setBounds(10,0,120,20);rn container.add(cb);rn rn cards = new JPanel(new CardLayout());rn cards.add(studentPane(),STUDENTPANEL);rn rn cards.setBounds(10,60,300,55);rn container.add(cards);rn //cb.setSelectedIndex(0);rn rn JPanel pane2=new JPanel(new GridLayout(1,4,10,10));rn pane2.add(jb_add);pane2.add(jb_query);rn pane2.add(jb_update);rn pane2.add(jb_del);rn pane2.setBounds(20, 150, 350, 25);rn rn ButtonAction o=new ButtonAction(this);rn jb_add.addActionListener(o);rn jb_del.addActionListener(o);rn jb_update.addActionListener(o);rn jb_query.addActionListener(o);rn container.add(pane2);rn jf.setSize(400,220);rn jf.setVisible(true);rn jf.setResizable(false);rn jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);rn rn rn public JPanel departmentPane()rn JPanel departmentPane = new JPanel(new GridLayout(2,2,3,10));rn departmentPane.add(lSDe); departmentPane.add(tSDe);rn departmentPane.add(lMName);departmentPane.add(tMName);rn return departmentPane;rn rn rn public JPanel scorePane()rn JPanel scorePane = new JPanel(new GridLayout(3,2,3,10));rn scorePane.add(lSNo); scorePane.add(tSNo);rn scorePane.add(lCName);scorePane.add(tCName);rn scorePane.add(lGrade);scorePane.add(tGrade);rn return scorePane;rn rn rn public JPanel studentPane()rn JLabel jl = new JLabel("Label");rn JPanel studentPane = new JPanel(new GridLayout(2,2,3,10));rn studentPane.add(lSNo); studentPane.add(tSNo);rn studentPane.add(lSDe); studentPane.add(tSDe);rn return studentPane;rn rn rn public void itemStateChanged(ItemEvent e) rn CardLayout cardLayout = (CardLayout)cards.getLayout();rn cardSwitchSign = e.getItem().toString();rn //cardLayout.show(cards, cardSwitchSign);rn if(cardSwitchSign.equals("系部信息管理"))rn cards.add(departmentPane(),DEPARTMENTPANEL);//问题一:此处动态添加departmentPanern // 要不要动态的删除上一个Jpanelrn cards.setBounds(10,60,300,55);rnrn else if(cardSwitchSign.equals("学生信息管理"))rn cards.add(studentPane(),STUDENTPANEL);rn cards.setBounds(10,60,300,55);rn elsern cards.add(scorePane(),SCOREPANEL);rn cards.setBounds(10,40,300,80);rn rn cardLayout.show(cards, cardSwitchSign);rn //jf.repaint(); rn /*问题二: 为什么不能把cardLayout.show(cards, cardSwitchSign);这一句放在上面注掉的那个地方,而rn 在这儿加一个jf.repaint()呢?加在JPanel里面再刷新一下,不是就可以吗?*/rnrn rn rn public static void main (String[] args) rn new StudentInfo().launchFrame();rn rn
初学struts2 遇到一点小问题
在用struts2 写一个小的web程序的时候,jsp页面是这样的:rn<%@ taglib prefix="s" uri="/struts-tags"%>rnrnrnrn 输入要求代数和的两个数字rnrnrnrn rn rn rnrnrnrnrnstruts.xml的配置文件是这样的:rnrn rn rn /pages/positive.jsprn /pages/negative.jsprn rn rnrnrn用tomcat 6 运行的时候出现了这样的错误:rntype:Status reportrnrnmessage :/FirstWeb/sumrnrndescription: The requested resource (/FirstWeb/sum) is not available.rnrn我的jsp中的form action的名字和 config中的action名字一样 而且class路径完全正确,为什么总是说The requested resource (/FirstWeb/sum) is not available。新手请勿见笑。谢谢!rn
初学c# 遇到的一点小问题
1:rnLinq 性能优化rn我查了一些资料 说 linq 某些函数(比如grouy by)可以预载一些数据 rn比如 var query = from t in tab select t group by t.catern当执行一些命令 比如foreach count 才会真正的执行 rn但是这都只是linq to sql 的 想问问 有没有相关的文章介绍linq是如何优化的rn还有就想问问 lamba表达式 和这有关系么?我觉得和linq差不多哎rnrn2:rnIEnumerable 和 IQueryable 区别rn我是找了个帖子http://stackoverflow.com/questions/252785/what-is-the-difference-between-iqueryablet-and-ienumerablet 但是不太明白rn里头说 IQueryable 继承IEnumerable 但是多了2个属性 (一个是provider 一个是算是表达形式吧 我理解就是把数据放到何种数据结构中优化查询)
Java Swing 皮肤包
内含数10个Java Swing的皮肤包,使用时将jar文件添加到项目工程中,同时在主方法中添加对应txt文件中的代码,即可显示皮肤。
JAVA SWING 皮肤包
美化架包 包含皮肤 通过java swing来使用 。
java swing 外观包
swing外观包,有十个主题任你选择···使你的界面更加漂亮!!
java swing 皮肤包
几款swing皮肤 很漂亮哦!中间有使用方法,讲文档中的代码放到构造方法中再做异常处理就好了!
Java 计算器 swing包
简单,适合初学者和掌握的不牢靠的人,条理清晰,容易懂,界面也比较好。
java关于包的关于包的关于包的
java类的资源关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的
关于那个国外教材上的一点小问题
(c=getchar())!=EOFrn这个在VC上怎么结束输入
关于包的一点疑问
package com.haerbin;rnrnclass Cat rnrn-----------------------------------------------------------rnpackage com.haerbin;rnrnclass Dog rn public static void main(String[] args) rn Cat c = new Cat();rn rnrn-----------------------------------------------------------rn上面的2个java文件,我放在了同一路径下,都是...\com\haerbin这个目录下,rn为什么用javac Dog.java,访问不了呢,如果我把2个类最前面的packagern都注释掉就能访问了,不加public就是default,不是说在同一包中的其他类rn能访问嘛,有点不太懂啊,麻烦解释下啊,谢谢
Swing包
<p>n 本课程采用的开发环境为JDK+Eclipse,从零基础学习者的角度出发,通过通俗易懂的语言、流行有趣的实例,详细地介绍了使用Java 语言进行程序开发需要掌握的知识和技术。全课共分16 章节,包括初识Java、Java 语言基础、流程控制、数组、面向对象编程基础、异常处理、Java 常用类和枚举类型、泛型与集合类及坦克大战游戏等。书中所有知识都结合具体实例进行讲解,设计的程序代码给出了详细的注释,可以使学习轻松领会Java 程序开发的精髓,快速提高开发技能。n</p>n<p>n <img src="https://img-bss.csdn.net/201906200849405804.png" alt="" /></p>
初学JAVA遇到小问题
public class numbercount//此程序怎么查到0~9的每个个数的呢?rnpublic static void main(String args[])rn rn int num[]=new int [30],m;rn int sam[]=3,1,5,7,2,4,0,6,9,4,1,5,8,2,3,4,5,3,0,2;rn int s=sam.length;rn for(m=0;m
awt包的问题
import java.awt.*后rn创建了一个Frame子类: rnclass SampleFrame extends Frame。。。。 rn并在aplet程序中生成实例 rnpublic class AppletFrame extends Applet rnFrame f; rnpublic void init() rnf=new SampleFrame("A Frame Window");、、、、 rn但编译无法通过javac AppletFrame.java: rn出错信息为:cannot resolve symbol:class Frame, rn偶用的是在网上下的jdk1.3,出现这种情况的原因 rn是因为欧的jdk本身有问题,没有包容Frame类,还是其它原因 rn有没有办法知道,我所使用的jdk到底有没有awt类, rn请各位大侠指教 rn谢先 rn:> rnrnrn
java关于包的关于包的关于包的关于包的关于包的关于包的
关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的关于包的
TOMCAT上遇到一点小问题
我每个页面一开始有这样一条语句。rn<%@ include file="inc/_meta.jsp"%>rn
Python包示例程序
Python包开发示例程序,辅助博库里的包章节
贪吃蛇(Java)、AWT/Swing
Awt/Swing简易版贪吃蛇源码,可正常运行,非常基础的一个Java小游戏。
java计算器,swing和awt
java计算器,swing和awt,可以实现+-*/和根号
关于包的小问题
在同一包中类是不是不能互访?Test类访问不了P类???rnP.javarnpackage com.tool;rnpublic class P rnpublic static void rint(String s) rnSystem.out.print(s);rnrnrnTest.javarnpackage com.tool;rnpublic class Test rn public static void main(String[] args)rn P.rint("fdd");rn rnrn怎么实现package 中互访,还是我的classpath设置有问题?
求教 java Swing and awt
我在使用Swing 和 awt 倍感困惑 因为里面的东西实在太多台繁琐了 rn有不有那位兄弟 有比较精炼 结构化的类库 总结啊rn谢谢
关于TCP包的小问题
我用tcp向linux的程序发送10k左右的数据,linux下我使用1k的缓冲区来接收,由于处理时间比较长,总是处理不对。可我并不能用和发送数据一样大小的缓冲区来接收,发送数据长度是变化的,而且不能预测,最多可能达到4M左右。我应该怎么处理呢?
java swing网格包布局
[img]http://hiphotos.baidu.com/zhidao/pic/item/d1a20cf4a6432f937709d70f.jpg?t=1325213284609&t=1325213428984[/img]rn最近在写一个图片转换器,遇到类似上面图片的组件布局,想用网格包布局,但写不出来.所以想请位高手给个代杩,本人很想学网格包布局;不知道网格包布局能不能布局成这样,我写过,但没成功,哪位能帮我写下这个布局的主要代码,在这先谢谢了.
java项目开发swing外观包
里面包含10种主题,只要导入主题包,就可以是java开发的界面更加漂亮。里面服例子和说明。希望对大家有用。
java swing风格包quaqua
java swing风格包,让你的界面如同苹果界面 使用方法:在程序开始地方加如下代码: setDefaultLookAndFeelDecorated(true); UIManager.setLookAndFeel("ch.randelshofer.quaqua.QuaquaLookAndFeel");
java swing 各种皮肤包
,有好多朋友曾经问我如何做出很美观的用户界面程序,比如做个苹果的界面,做个XP的界面,当时我也很头疼,因为jdk当时只是1.3,Sun并没有像今天那样把java做的如此成功,所以当时似乎解决不了,现在好了,jdk1.4开始支持java自定义外观,那我们就开始研究吧.自定义呢网上有教材,可以自己找,而且看看plf.LookAndFeel的实现类,自己可以研究一下,我就上传一些相关皮肤包吧
substance美化包java swing
substance美化包java swing,压缩包内含使用方法及代码
Java swing beautyeye皮肤包
java swing 皮肤包,整体效果还行,只需要注入一下,挺好用的
java awt/swing 计算器
用java 的awt和swing 编辑的计算器,编辑的思路比较好,代码精简。实现计算器四则混合运算。
java awt swing问题
在java awt的界面上如何传送文件?用那个类啊?rnrn就是前面有一个框,后面有两个按钮,一个是“浏览”,一个是“上传”rn基于Tcp/Ip javaSocket编程,可以把本地的文件发送到服务器端rnrn怎么做呢?rnrn最好有例子代码>>>rnrn先谢谢了!!!
java文件对话框(awt,swing)
java 文件对话框,本实例采用二种方案,swing,awt两种效果来解决。很实用,很好!!希望大家给点意见!!谢谢 QQ:354590790
相关热词 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法 c# gmail 发邮件 c# 多层文件