
效果图
参考代码
//导入swing图形界面开发常用的3个包import java.awt.*
import java.awt.event.*
import javax.swing.*
public class AddFrame extends JFrame implements ActionListener {
JTextField jtf1, jtf2, jtf3
public AddFrame() {
JPanel jpcenter = new JPanel(new GridLayout(3, 2)) //创建面板,设置布局为3行2列的网格布局
JLabel jl1 = new JLabel("First Number:")
jtf1 = new JTextField()
jpcenter.add(jl1)
jpcenter.add(jtf1)
JLabel jl2 = new JLabel("Second Number:")
jtf2 = new JTextField()
jpcenter.add(jl2)
jpcenter.add(jtf2)
JLabel jl3 = new JLabel("The Sum:")
jtf3 = new JTextField()
jtf3.setBackground(Color.WHITE) // 文本框背景色为白色
jtf3.setEditable(false)// 文本框不许编辑
jpcenter.add(jl3)
jpcenter.add(jtf3)
add(jpcenter,BorderLayout.CENTER)//窗口默认布局为BorderLayout .把jpcenter放到窗口的中间
JButton jbAdd = new JButton("Add")
jbAdd.addActionListener(this)//添加点击事件的处理
add(jbAdd, BorderLayout.SOUTH)//把按钮放到窗口的南面
setTitle("Add Calculator")
setSize(350, 200)
setLocationRelativeTo(null)//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE)//点击右上角的关闭按钮时,结束程序
}
//点击按钮时处理该事件
public void actionPerformed(ActionEvent e) {
try {
double num1=Double.parseDouble(jtf1.getText())
double num2=Double.parseDouble(jtf2.getText())
jtf3.setText(num1+num2+"")
}catch (Exception ex) {
//输入了字母汉字,不符合规范的输入时进行提示
JOptionPane.showMessageDialog(this, "输入了错误的字符或者格式,请输入数字", "错误!", JOptionPane.ERROR_MESSAGE)
}
}
public static void main(String[] args) {
new AddFrame().setVisible(true)//创建窗口并可见
}
}
其实无论在什么平台下,GUI应用程序的基本开发方法都是相似的。一般都包括下面这样四个步骤:①创建容器
首先要创建一个GUI应用程序,需要创建一个用于容纳所有其它GUI组件元素的载体,Java中称为容器。典型的包括窗口(Window)、框架(Frame/JFrame)、对话框(Dialog/JDialog)、面板(Panel/JPanel)等。只有先创建了这些容器,其它界面元素如按钮(Button/JButton)、标签(Label/JLabel)、文本框(TextField/JTextField)等才有地方放。 ②添加组件
为了实现GUI应用程序的功能,为了与用户交换,需要在容器上添加各种组件/控件。这需要根据具体的功能要求来决定用什么组件。例如,如果需要提示信息,可用标签(Label/JLabel)如果需要输入少量文本,可用文本框(TextField/JTextField)如果需要输入较多文本,可用文本区域(TextArea/JTextArea)如果需要输入密码,可用密码域(JPasswordField)等等。
③安排组件
与传统的Windows环境下的GUI软件开发工具不同,为了更好地实现跨平台,Java程序中各组件的位置、大小一般不是以绝对量来衡量,而是以相对量来衡量。例如有时候,程序的组件的位置是按"东/East"、"西/West"、"南/South"、"北/North"、"中 /Center"这种方位来标识的。因此,在组织界面时,除了要考虑所需的组件种类外,还需要考虑如何安排这些组件的位置与大小。这一般是通过设置布局管理器(Layout Manager)及其相关属性来实现的。事实上上述按方位来安排组件就是采用了Java中多种布局管理器里的BorderLayout布局管理器。
④处理事件
为了完成一个GUI应用程序所应具备的功能,除了适当地安排各种组件产生美观的界面外,还需要处理各种界面元素事件,以便真正实现与用户的交换,完成程序的功能。在Java程序中这一般是通过实现适当的事件监听者接口来完成的。比如如果需要响应按钮事件,就需要实现 ActionListener监听者接口如果需要响应窗口事件,就需要实现WindowListener监听者接口。
效果图
参考代码
import java.awt.*import java.awt.event.*
import javax.swing.*
public class KeyFrame extends JFrame implements KeyListener{
JLabel jlkey
public KeyFrame() {
jlkey = new JLabel("请输入字母或者数字,其他字符不显示")
add(jlkey)
addKeyListener(this)
setLayout(new FlowLayout())
setSize(260, 160)
setTitle("输入...")
setLocationRelativeTo(null)
setDefaultCloseOperation(EXIT_ON_CLOSE)
setVisible(true)
}
public static void main(String[] args) {
new KeyFrame()
}
public void keyTyped(KeyEvent e) {//敲击键盘
c=e.getKeyChar()//得到键入的字符
repaint()//重绘
}
public void keyPressed(KeyEvent e) {//按下键盘
// c=e.getKeyChar()
// repaint()
}
public void keyReleased(KeyEvent e) {//释放键盘
}
char c
@Override
public void paint(Graphics g) {
super.paint(g)
//如果只能显示输入的是字母或者数字,那么需要if判断下
if((c<='Z'&& c>='A')||(c<='z'&&c>='a')||(c<='9'&&c>='0')){// 注意比较的是字符 '9' 和字符'0'
Font font = g.getFont()
g.setColor(Color.BLUE)
g.setFont(new Font(font.getName(),font.getStyle(),20))
g.drawString(c+"",100, 100) //绘制
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)