JFrame如何实现小键盘输入?

潍一 2013-01-23 10:05:30
一个登陆窗口,上面账号和密码输入,当用户点击密码框的时候,我想弹出一个小键盘,让用户点击鼠标输入密码,我现在是在这个JFrame上花了一个JPanel,这个JPanel就是小键盘,但是现在是登陆框一出来,我的小键盘就出来了,请前辈们指教下,是当密码框获取了输入焦点之后重绘一下JFrame呢? 还是弹出一个另外的对话框作为小键盘?
...全文
156 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
潍一 2013-01-23
  • 打赏
  • 举报
回复
引用 5 楼 AA5279AA 的回复:
引用 4 楼 kiss8745 的回复: 引用 3 楼 AA5279AA 的回复:不需要啊。 JPanel中的某些值(比如是否显示,长宽高等等)设置为一个对象,而不是一个定值。 如果需要的时候只需要修改这些对象的值就可以了。并不需要重新执行构造方法的啊、 java的宗旨不就是吧任何事物都看成一个对象么? 好高深啊, 我去试试! 我是做寒假作业的菜鸟! 不错了。 我的毕业设计就……
谢谢前辈了,哈哈,刚刚跟着程序跑了一遍发现是自己写错了点东西,嘻嘻,现在解决啦!
潍一 2013-01-23
  • 打赏
  • 举报
回复
引用 5 楼 AA5279AA 的回复:
引用 4 楼 kiss8745 的回复: 引用 3 楼 AA5279AA 的回复:不需要啊。 JPanel中的某些值(比如是否显示,长宽高等等)设置为一个对象,而不是一个定值。 如果需要的时候只需要修改这些对象的值就可以了。并不需要重新执行构造方法的啊、 java的宗旨不就是吧任何事物都看成一个对象么? 好高深啊, 我去试试! 我是做寒假作业的菜鸟! 不错了。 我的毕业设计就……
还是没能够显示啊,前辈能否加个企鹅号呢?
失落夏天 2013-01-23
  • 打赏
  • 举报
回复
引用 4 楼 kiss8745 的回复:
引用 3 楼 AA5279AA 的回复:不需要啊。 JPanel中的某些值(比如是否显示,长宽高等等)设置为一个对象,而不是一个定值。 如果需要的时候只需要修改这些对象的值就可以了。并不需要重新执行构造方法的啊、 java的宗旨不就是吧任何事物都看成一个对象么? 好高深啊, 我去试试! 我是做寒假作业的菜鸟!
不错了。 我的毕业设计就是一款差不多的小游戏把。 也是基于GUI的
潍一 2013-01-23
  • 打赏
  • 举报
回复
引用 3 楼 AA5279AA 的回复:
不需要啊。 JPanel中的某些值(比如是否显示,长宽高等等)设置为一个对象,而不是一个定值。 如果需要的时候只需要修改这些对象的值就可以了。并不需要重新执行构造方法的啊、 java的宗旨不就是吧任何事物都看成一个对象么?
好高深啊, 我去试试! 我是做寒假作业的菜鸟!
失落夏天 2013-01-23
  • 打赏
  • 举报
回复
不需要啊。 JPanel中的某些值(比如是否显示,长宽高等等)设置为一个对象,而不是一个定值。 如果需要的时候只需要修改这些对象的值就可以了。并不需要重新执行构造方法的啊、 java的宗旨不就是吧任何事物都看成一个对象么?
潍一 2013-01-23
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
如果一次使用的话还是弹出吧。 简单一些。 平常这个JPanel可见设为false,需要的时候改成true就可以了。
我开始也是这样设计的,可是这个JPanel是在构造函数中写的,如果我要去修改为true的话,构造函数必须重新执行啊,那么上面的账号什么的都不见了啊! 有没有办法不重新调用构造方法呢?
失落夏天 2013-01-23
  • 打赏
  • 举报
回复
如果一次使用的话还是弹出吧。 简单一些。 平常这个JPanel可见设为false,需要的时候改成true就可以了。
大连民族大学 计算机科学与工程学院 《Java语言》课程实验报告 实验题目: 计算器的设计与实现 课程名称: Java语言 实验类型: 演示性 验证性 操作性 设计性 综合性 专业:网络工程 班级:**** 学生姓名*** 学号:***** 实验日期:2018年 4月23日 地点:计算机学院综合试验中心(I-303) 实验学时:4 实验成绩: 指导教师签字: 2018年 5月21日 1. 问题需求描述:Problem description 利用Java Swing设计计算器图形化界面,并实现事件的监听,以及计算器基本的加、减、乘、除、 清空、输出运算结果的操作,学习使用各种图形化界面的控件,容器,布局等,学习对 按钮事件的处理等。以及对非法输入的处理。 2. 设计说明:Design notes 本计算器,界面方面总体采用BorderLayout布局,显示输入输入的文本框和清除按钮 采用FlowLayout布局,容器放在BorderLayout的North;0- 9和各种运算符号还有小数点采用GridLayout布局,容器放在BorderLayou的Center;事 件监听和处理通过实现addActioListener监视器接口和ItemEvent事件接口,从而对每一 个按钮实现事件的监听和处理;计算方面,调用ScriptEngineManager和ScriptEngine两 个类,直接通过eval函数直接把输入文本当作JS代码执行,输出执行结果,这样报错也 会直接实现,另把文本框设置不允许直接从键盘输入以防止出现安全事件。 最后通过转化成JS代码运算得到启发,使用类似方法,我还实现了调用VB代码实现计算 器实时读出键盘输入,发出声音。 3. 系统实现:system implementation 1.程序界面展示 4. 总结体会: summary and experience 实验达到了预期的目标。通过此次的编程,我学会了用Java语言编写简单的软件,增强 了我对学习Java的兴趣。编程过程中,总体设计主要是窗口与组件的应用,具体执行则 是利用Java语言设计算法,而难点也在算法的设计上。虽然程序大体上符合要求,但由 于第一次编写这么复杂的程序,程序仍然存在一- 些漏洞,譬如由于未进行异常处理,当连续输入运算符是程序会出错,还有若一直按小 数点的话会得到一连串的小数点。由于最近忙着考试没有时间修改,考试结束后一定认 真修改这些问题。我觉得在编程时应该注意排版对齐,这样不论是自己检查程序还是别 人阅读程序都会更加方便。如果能添加备注的话以后阅读程序会更容易些。在以后的编 程中我会吸取经验,养成认真、严谨的编程习惯。 附:程序清单 1. import javax.swing.JFrame; public class Calculator { public static void main(String[] paramArrayOfString) { CalculatorFrame localCalculatorFrame = new CalculatorFrame(); localCalculatorFrame.setSize(800, 800); localCalculatorFrame.setVisible(true); } } 2 import java.awt.Container; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; class CalculatorFrame extends JFrame { public CalculatorFrame() { setTitle("Calculator"); setSize(200, 200); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent paramAnonymousWindowEvent) { System.exit(0); } }); Container localContainer = getContentPane(); localContainer.add(new CalculatorPanel()); } } 3. import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.GridLayout; import java.awt.eve
《java程序设计》课程的题库资料,由贺州学院整理,可供学生期末课程复习使用,也可以供相关任课教师出卷使用。 内容示例为: 40. __________包包含了Collection的接口的类的API。 答案:Java.util 41. Math.round(11.5)等于__________,Math.round(-11.5)等于__________。 答案:12; -11 [考点范围] 常用的系统类 42. ________对象可以使用read方法从标准的输入设备(通常键盘)读取数据;__________对象可以使用print方法向标准输出设备(屏幕)输出显示。 答案:System.in ;System.out [考点范围] JAVA输入输出系统 43. 框架(JFrame)和面板(JPanel)的默认布局管理器分别是______和_______。 答案:BorderLayout FlowLayout [考点范围] 图形用户界面 44. Swing的布局管理器主要包括_______。 答案:FlowLayout、BorderLayout、CardLayout、GridLayout、GridBogLayout、BoxLayout [考点范围] 图形用户界面 45. Java事件处理包括建立事件源、________和将事件源注册到监听器 。 答案:声明监听器 [考点范围] 图形用户界面 46. AWT的事件处理机制包括_______、事件和事件监听者。 答案:事件源 [考点范围] 图形用户界面 47. Swing的顶层容器有________、JApplet、JWwindow和JDialog。 答案:JFrame [考点范围] 图形用户界面 48. 线程的启动是通过调用其______________方法而实现的。 答案:start() [考点范围] 线程 49. Java虚拟机(JVM)中的线程调度器负责管理线程,调度器把线程的优先级分为10个级别,分别用Thread类中的类常量表示,每个Java线程的优先级都在常数________和_______之间,即Thread.MIN_PRIORIY和Thread.MAX_PRIORIY之间。 答案:1;10 [考点范围] 线程
java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import java.lang.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.awt.Component.*; import java.awt.color.*; import java.text.DecimalFormat; //*****************************************************************************// //*****************************************************************************// public class Calculator implements ActionListener //导入动作监听接口 { //******************************// //*****设计计算器界面的单位*****// JFrame frame; //定义框架 JTextField textAnswer; //定义输出显示框 JPanel panel, panel1, panel2, panel3;//定义面板作为子容器,从而达到要求的界面效果 JMenuBar mainMenu; JTextField textMemory; JLabel labelMemSpace; //labelMemSpace单纯做摆设,控制面板的形状 JButton buttonBk, buttonCe, buttonC; JButton button[]; JButton buttonMC, buttonMR, buttonMS, buttonMAdd; JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal,myCollege; DecimalFormat df; //设置数据输出精度 boolean clickable; //控制当前能否按键 double memoryd; //使用内存中存储的数字 int memoryi; double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd) short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算 boolean clear = false; String copy; //做复制用 JTextArea help; //帮助 JScrollPane scrollHelp; static boolean One =true; //******************// //*****构造函数开始*****// public Calculator() { clickable = true; answerd = 0; frame = new JFrame("梦幻计算器--SWE08008"); frame.setResizable(false);//不允许改变计算器的大小 frame.setLocation(250,150);//设置计算器的起始位置 frame.setBackground(Color.YELLOW); df = new DecimalFormat("0.##############"); //设置数据输出精度(对于double型值)
试验1. 实验要求 (1)熟悉javac、java等命令的使用,熟悉使用Java编辑器。 (2)编写一个Java Application程序,接受用户从键盘输入的10个整数,比较并输出其中的最大值和最小值。要求程序能对非法数据进行处理。 (3)编写一个Java Application程序,从键盘读取年份,输出该年份是否为闰年。要求程序能对非法数据进行处理。 实验2 编写一个复数类ComplexNumber,其中包括实例变量real、image,方法如下: 1)构造方法 ComplexNumber(double a,double b) 2) ComplexNumber add(ComplexNumber x) //当前复数对象与另一复数对象进行复数的加法运算,返回一新的复数对象 3) ComplexNumber sub(ComplexNumber x) //当前复数对象与另一复数对象进行复数的减法运算,返回一新的复数对象 4)double getReal () //获取复数对象的实部 5)double getImage () //获取复数对象的虚部 6)void show( ) //按照实部+虚部i(如10+8i)的形式显示复数对象的值 7)String toString()//返回复数对象对应的串(如4+7i) (2)编写一个主类,定义并实例化两个复数对象,输出这两个复数对象的值,然后进行复数的加法和减法运算,输出其运算结果(对象)的值。 实验3 编写Application程序实现小型公司的工资管理。该公司主要有4类人员:经理(Manager)、兼职技术人员(Technician)、销售员(Salesman)和销售经理(SalesManager)。要求记录这些人员的编号、姓名和月工资,计算他们的月工资并显示全部信息。月工资计算办法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;销售人员按该当月销售额的4%提成;销售经理既拿固定月工资也领取销售提成,固定月工资为5000元,销售提成为所管辖部门当月销售总额的0.5%。 实验4 编写一个简单的文本编辑程序。 (1)要求在容器Frame/JFrame中放置一个菜单条(MenuBar)。该菜单条至少包括2个菜单(Menu):文件(F)和帮助(H)。文件菜单至少包括以下菜单项:新建、打开、关闭、保存、另存为、退出。帮助菜单包括以下菜单项:联系我们、关于。 (2)提供快捷工具栏,包括新建、打开及保存等功能(这部分根据自己的情况选做)。如单击保存按钮能将TextArea或JTextArea的文本保存到指定的文件中。 提示:用java.awt.TextArea或javax.swing.JTextArea作为文本编辑窗口,用java.io.FileWriter写文件。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧