package com.view;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class MyFrame extends JFrame{
private Container c;
private JMenuBar menuBar;
private JMenu fileMenu;
private Mb but1, but2, but3, but4, but5;
private boolean[] butsNum = new boolean[5];
private JTextField lab;
public MyFrame(){
c = this.getContentPane();
c.setLayout(new GridLayout(3, 2, 10, 10));
this.setSize(400, 300);
this.setLocationRelativeTo(null);
this.initMenuBar();
this.initButsNum();
this.initButs();
lab = new JTextField(1);
lab.setFont(new Font("宋体", Font.PLAIN, 1));
lab.setBackground(new Color(238, 238, 238));
lab.setForeground(new Color(238, 238, 238));
lab.setBorder(null);
c.add(lab);
lab.addKeyListener(new KeyHandler());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
private void initButsNum(){
for(int i = 0; i < butsNum.length; i++){
butsNum[i] = true;
}
}
private class KeyHandler implements KeyListener{
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
char ch = e.getKeyChar();
switch(ch){
case 'a':butsNum[0] = !butsNum[0];
break;
case 'b':butsNum[1] = !butsNum[1];
break;
case 'c':butsNum[2] = !butsNum[2];
break;
case 'd':butsNum[3] = !butsNum[3];
break;
case 'e':butsNum[4] = !butsNum[4];
break;
}
changeButs();
}
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyChar() == 'f'){
System.out.println("x: " + c.getComponents());
}
}
}
private void changeButs(){
// boolean flag = false;
// for(int i = 0; i < butsNum.length; i++){
// if(butsNum[i]){
// flag = true;
// break;
// }
// }
but1.setVisible(butsNum[0]);
but2.setVisible(butsNum[1]);
but3.setVisible(butsNum[2]);
but4.setVisible(butsNum[3]);
but5.setVisible(butsNum[4]);
// if(!flag){
// this.reset();
// }
}
private void reset(){
Component[] cs = c.getComponents();
for(int i = 0; i < cs.length; i++){
c.remove(cs[i]);
}
for(int i = 0; i < cs.length; i++){
System.out.println(cs[i].getClass().getName());
}
}
private void initMenuBar(){
menuBar = new JMenuBar();
this.setJMenuBar(menuBar);
fileMenu = new JMenu("文件");
menuBar.add(fileMenu);
}
private void initButs(){
but1 = new Mb("a");
but1.setBackground(new Color(238, 238, 238));
but1.setForeground(new Color(238, 238, 238));
but1.setBorder(null);
but1.setEnabled(false);
but1.setText("");
but1.setBounds(0, 0, 100, 20);
c.add(but1, BorderLayout.CENTER);
but2 = new Mb("b");
c.add(but2, BorderLayout.SOUTH);
but3 = new Mb("c");
c.add(but3, BorderLayout.NORTH);
but4 = new Mb("d");
c.add(but4, BorderLayout.EAST);
but5 = new Mb("e");
c.add(but5, BorderLayout.WEST);
but1.addKeyListener(new KeyHandler());
but2.addKeyListener(new KeyHandler());
but3.addKeyListener(new KeyHandler());
but4.addKeyListener(new KeyHandler());
but5.addKeyListener(new KeyHandler());
}
public static void main(String[] args) {
new MyFrame();
}
}
评论0
最新资源