import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JButton;
import java.awt.Font;
import javax.swing.SwingConstants;
import javax.swing.border.TitledBorder;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import javax.swing.JTextField;
/**
* 虚拟键盘(键盘的按下与释放)
*/
public class KeyBoard extends JFrame { //创建“键盘”类继承JFrame
//声明窗体中的成员组件
private JPanel contentPane;
private JTextField textField;
private JButton btnQ;
private JButton btnW;
private JButton btnE;
private JButton btnR;
private JButton btnT;
private JButton btnY;
private JButton btnU;
private JButton btnI;
private JButton btnO;
private JButton btnP;
private JButton btnA;
private JButton btnS;
private JButton btnD;
private JButton btnF;
private JButton btnG;
private JButton btnH;
private JButton btnJ;
private JButton btnK;
private JButton btnL;
private JButton btnZ;
private JButton btnX;
private JButton btnC;
private JButton btnV;
private JButton btnB;
private JButton btnN;
private JButton btnM;
Color green=Color.GREEN;//定义Color对象,用来表示按下键的颜色
Color white=Color.WHITE;//定义Color对象,用来表示释放键的颜色
ArrayList<JButton> btns=new ArrayList<JButton>();//定义一个集合,用来存储所有的按键ID
//自定义一个方法,用来将容器中的所有JButton组件添加到集合中
private void addButtons(){
for(Component cmp :contentPane.getComponents()){//遍历面板中的所有组件
if(cmp instanceof JButton){//判断组件的类型是否为JButton类型
btns.add((JButton)cmp);//将JButton组件添加到集合中
}
}
}
/**
* 主方法
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() { //使得Runnable中的的run()方法在the system EventQueue的指派线程中被调用
public void run() {
try {
KeyBoard frame = new KeyBoard(); //创建KeyBoard对象
frame.setVisible(true); //使frame可视
frame.addButtons();//初始化存储所有按键的集合
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* 创建JFrame窗体
*/
public KeyBoard() { //KeyBoard的构造方法
setTitle("虚拟键盘"); //设置窗体题目
setResizable(false); //不可改变窗体宽高
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体关闭的方式
setBounds(100, 100, 561, 280); //设置窗体的位置和宽高
/**
* 创建JPanel面板contentPane置于JFrame窗体中,并设置面板的背景色、边距和布局
*/
contentPane = new JPanel();
contentPane.setBackground(Color.WHITE);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
/**
* 创建按钮button置于面板contentPane中,设置按钮的背景色、位置、宽高以及按钮中的字体位置、内容、样式
*/
btnQ = new JButton("Q");
btnQ.setBackground(white);
btnQ.setVerticalAlignment(SwingConstants.TOP);
btnQ.setHorizontalAlignment(SwingConstants.LEADING);
btnQ.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnQ.setBounds(0, 60, 50, 45);
contentPane.add(btnQ);
/**
* 创建按钮button_2置于面板contentPane中,设置按钮的背景色、位置、宽高以及按钮中的字体位置、内容、样式
*/
btnW = new JButton("W");
btnW.setBackground(white);
btnW.setVerticalAlignment(SwingConstants.TOP);
btnW.setHorizontalAlignment(SwingConstants.LEADING);
btnW.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnW.setBounds(55, 60, 50, 45);
contentPane.add(btnW);
/**
* 创建按钮button_3置于面板contentPane中,设置按钮的背景色、位置、宽高以及按钮中的字体位置、内容、样式
*/
btnE = new JButton("E");
btnE.setBackground(white);
btnE.setVerticalAlignment(SwingConstants.TOP);
btnE.setHorizontalAlignment(SwingConstants.LEADING);
btnE.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnE.setBounds(110, 60, 50, 45);
contentPane.add(btnE);
/**
* 创建按钮button_4置于面板contentPane中,设置按钮的背景色、位置、宽高以及按钮中的字体位置、内容、样式
*/
btnR = new JButton("R");
btnR.setBackground(white);
btnR.setVerticalAlignment(SwingConstants.TOP);
btnR.setHorizontalAlignment(SwingConstants.LEADING);
btnR.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnR.setBounds(165, 60, 50, 45);
contentPane.add(btnR);
/**
* 创建按钮button_5置于面板contentPane中,设置按钮的背景色、位置、宽高以及按钮中的字体位置、内容、样式
*/
btnF = new JButton("F");
btnF.setBackground(white);
btnF.setVerticalAlignment(SwingConstants.TOP);
btnF.setHorizontalAlignment(SwingConstants.LEADING);
btnF.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnF.setBounds(195, 125, 50, 45);
contentPane.add(btnF);
/**
* 创建按钮button_6置于面板contentPane中,设置按钮的背景色、位置、宽高以及按钮中的字体位置、内容、样式
*/
btnD = new JButton("D");
btnD.setBackground(white);
btnD.setVerticalAlignment(SwingConstants.TOP);
btnD.setHorizontalAlignment(SwingConstants.LEADING);
btnD.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnD.setBounds(137, 125, 50, 45);
contentPane.add(btnD);
btnT = new JButton("T");
btnT.setVerticalAlignment(SwingConstants.TOP);
btnT.setHorizontalAlignment(SwingConstants.LEADING);
btnT.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnT.setBackground(white);
btnT.setBounds(220, 60, 50, 45);
contentPane.add(btnT);
btnY = new JButton("Y");
btnY.setVerticalAlignment(SwingConstants.TOP);
btnY.setHorizontalAlignment(SwingConstants.LEADING);
btnY.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnY.setBackground(white);
btnY.setBounds(275, 60, 50, 45);
contentPane.add(btnY);
btnU = new JButton("U");
btnU.setVerticalAlignment(SwingConstants.TOP);
btnU.setHorizontalAlignment(SwingConstants.LEADING);
btnU.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnU.setBackground(white);
btnU.setBounds(330, 60, 50, 45);
contentPane.add(btnU);
btnI = new JButton("I");
btnI.setVerticalAlignment(SwingConstants.TOP);
btnI.setHorizontalAlignment(SwingConstants.LEADING);
btnI.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnI.setBackground(white);
btnI.setBounds(385, 60, 50, 45);
contentPane.add(btnI);
btnO = new JButton("O");
btnO.setVerticalAlignment(SwingConstants.TOP);
btnO.setHorizontalAlignment(SwingConstants.LEADING);
btnO.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnO.setBackground(white);
btnO.setBounds(440, 60, 50, 45);
contentPane.add(btnO);
btnP = new JButton("P");
btnP.setVerticalAlignment(SwingConstants.TOP);
btnP.setHorizontalAlignment(SwingConstants.LEADING);
btnP.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnP.setBackground(white);
btnP.setBounds(495, 60, 50, 45);
contentPane.add(btnP);
btnA = new JButton("A");
btnA.setVerticalAlignment(SwingConstants.TOP);
btnA.setHorizontalAlignment(SwingConstants.LEADING);
btnA.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnA.setBackground(white);
btnA.setBounds(23, 125, 50, 45);
contentPane.add(btnA);
btnS = new JButton("S");
btnS.setVerticalAlignment(SwingConstants.TOP);
btnS.setHorizontalAlignment(SwingConstants.LEADING);
btnS.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnS.setBackground(white);
btnS.setBounds(82, 125, 50, 45);
contentPane.add(btnS);
btnG = new JButton("G");
btnG.setVerticalAlignment(SwingConstants.TOP);
btnG.setHorizontalAlignment(SwingConstants.LEADING);
btnG.setFont(new Font("Times New Roman", Font.PLAIN, 16));
btnG.setBackground(white);
btnG.setBounds(251, 125, 50, 45);
contentPane.add(btnG);
btnH = new JButton("H");
btnH.setVerticalAlignment(SwingConstants.TOP);
没有合适的资源?快使用搜索试试~ 我知道了~
学生作业 Java课后实战训练源码.zip
共486个文件
java:226个
class:85个
dat:61个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 82 浏览量
2023-03-08
07:04:23
上传
评论
收藏 8.38MB ZIP 举报
温馨提示
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所涉及的版权问题或内容负法律责任。如有侵权,请举报或通知本人删除。
资源推荐
资源详情
资源评论
收起资源包目录
学生作业 Java课后实战训练源码.zip (486个子文件)
CityMap.class 8KB
ServerSocketFrame.class 6KB
ServerSocketFrame.class 6KB
ServerSocketFrame.class 6KB
ClientSocketFrame.class 6KB
ClientSocketFrame.class 6KB
ClientSocketFrame.class 6KB
ShowList.class 6KB
ClientOneToOne_ClientFrame.class 5KB
Pictures.class 5KB
InsertEmpFrame.class 5KB
MainFrame.class 5KB
ClientSocketFrame.class 5KB
SwingResourceManager.class 4KB
ServerSocketFrame.class 4KB
ServerSocketFrame.class 4KB
ClientSocketFrame.class 4KB
JDBCUtil.class 4KB
GainAllIpFrame.class 4KB
JDBCUtil.class 4KB
ClientOneToMany_ClientFrame.class 4KB
ClientOneToOne_ServerFrame$ServerThread.class 3KB
ClientOneToMany_ServerFrame.class 3KB
ClientOneToOne_ServerFrame.class 3KB
ConnJavaDB.class 2KB
BookSale.class 2KB
BookSale.class 2KB
ServerSocketFrame$ServerThread.class 2KB
ClientOneToOne_ClientFrame$ClientThread.class 2KB
ClientSocketFrame$1.class 2KB
ServerSocketFrame$1.class 2KB
ClientOneToMany_ServerFrame$ServerThread.class 2KB
ServerSocketFrame$2.class 2KB
ServerSocketFrame$2.class 2KB
ClientSocketFrame$2.class 2KB
ClientSocketFrame$2.class 2KB
JdbcUtil.class 2KB
ServerSocketFrame$1.class 2KB
GainAllIpFrame$PingIpThread.class 2KB
ServerSocketFrame$1.class 2KB
ServerSocketFrame$1.class 2KB
ClientSocketFrame$1.class 2KB
ClientSocketFrame$1.class 2KB
ClientSocketFrame$2.class 2KB
ServerSocketFrame$2.class 2KB
ConnMySQL.class 2KB
ClientOneToMany_ClientFrame$ClientThread.class 2KB
ClientOneToOne_ClientFrame$4.class 2KB
Employee.class 2KB
Product.class 1KB
ClientSocketFrame$2.class 1KB
ClientSocketFrame$1.class 1KB
ServerSocketFrame$1.class 1KB
GainAllIpFrame$2.class 1KB
Book.class 1KB
ServerSocketFrame$ReceiveImagePanel.class 976B
ClientSocketFrame$ReceiveImagePanel.class 976B
ServerSocketFrame$SendImagePanel.class 967B
ClientSocketFrame$SendImagePanel.class 967B
BackgroundPanel.class 962B
GainAllIpFrame$1.class 946B
ClientSocketFrame$1.class 936B
ProductTableModel.class 923B
ListTableModel.class 883B
BookInfoFrame.class 875B
MainFrame$1.class 865B
ClientOneToMany_ClientFrame$1.class 853B
LocalTableModel.class 853B
ClientOneToOne_ClientFrame$1.class 848B
JDBCUtil.class 811B
InsertEmpFrame$1.class 797B
LocalTableModel.class 797B
InsertEmpFrame$2.class 796B
ClientOneToMany_ClientFrame$3.class 768B
ClientOneToMany_ClientFrame$2.class 768B
ClientOneToOne_ClientFrame$2.class 762B
ClientOneToOne_ClientFrame$3.class 762B
ShowList$2.class 731B
ShowList$3.class 730B
ShowList$1.class 728B
Pictures$1.class 719B
User.class 718B
GainAllIpFrame$3.class 712B
Pictures$2.class 682B
MainFrame$2.class 655B
.classpath 458B
.classpath 433B
.classpath 379B
.classpath 379B
.classpath 379B
.classpath 379B
.classpath 379B
.classpath 379B
.classpath 301B
.classpath 301B
.classpath 301B
.classpath 301B
.classpath 301B
.classpath 301B
.classpath 301B
共 486 条
- 1
- 2
- 3
- 4
- 5
资源评论
金枝玉叶9
- 粉丝: 137
- 资源: 7640
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功