最近在华信上的几节课让我受益匪浅,斌哥指导我们学习了界面设计,事件机制。理论与实践结合的学习方式让我初步了解了Java基础与Java编码规范。通过与几位指导教师的交流沟通开阔了视野,看清了自己的位置,以及对自己就业的方向又多了一个可能的选择,尽管未来未必一定会从事Android与Java的开发,不过对学长们的就业经验来看这的确是一个很好的就业方向。
三节课的学习也让我独立的编写了200多行代码,实现了QQ,五子棋的简单界面和按钮,鼠标事件的初步设计。
//QQ代码:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class QQ2{
JTextField fieldName;
JPasswordField fieldPwd;
JFrame loginFrame;
JFrame mainFrame;
//显示登陆界面的方法
public void showLoginFrame(){
loginFrame = new JFrame();
loginFrame.setSize(300,200);
loginFrame.setTitle("QQ界面");
loginFrame.setDefaultCloseOperation(3);
loginFrame.setLocationRelativeTo(null);
FlowLayout layout = new FlowLayout(1,10,20);
loginFrame.setLayout(layout);
JLabel lableName = new JLabel("用户名");
JLabel lablePwd = new JLabel("密 码");
fieldName = new JTextField(18);
fieldPwd = new JPasswordField(18);
JButton buttonRegiste = new JButton("注册");
JButton buttonLogin = new JButton("登陆");
loginFrame.add(lableName);
loginFrame.add(fieldName);
loginFrame.add(lablePwd);
loginFrame.add(fieldPwd);
loginFrame.add(buttonRegiste);
loginFrame.add(buttonLogin);
//创建动作监听器对象
ActionListener listener = new ActionListener(){
//监控按钮被点击的操作
public void actionPerformed(ActionEvent e){
//登陆业务处理
//1.获取用户输入的信息
String name = fieldName.getText();
String pwd = fieldPwd.getText();
//验证信息(判断)
if(name.equals(pwd)){
loginFrame.setVisible(false);
showMainFrame();
}else{
JOptionPane.showMessageDialog(null,"对不起,登陆失败!");
}
}
};
//对登陆按钮进行监听
buttonLogin.addActionListener(listener);
loginFrame.setVisible(true);
}
//显示主界面的方法
public void showMainFrame(){
mainFrame = new JFrame();
mainFrame.setSize(300,600);
mainFrame.setTitle("主界面");
mainFrame.setLocationRelativeTo(null);
FlowLayout layout = new FlowLayout(1,100,20);
mainFrame.setLayout(layout);
for(int i=1;i<=10;i++){
final JButton buttonFriend = new JButton("好友"+i);
mainFrame.add(buttonFriend);
//创建监听器对象
ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent e){
String friendName = buttonFriend.getText();
showTalkFrame(friendName);
}
};
//对好友按钮进行监听
buttonFriend.addActionListener(listener);
}
mainFrame.setVisible(true);
}
//显示聊天主界面
public void showTalkFrame(String friend){
final JFrame talkFrame = new JFrame();
talkFrame.setSize(400,450);
talkFrame.setTitle("与"+friend+"正在聊天中...");
talkFrame.setLocationRelativeTo(null);
//创建线性布局对象及其布局
FlowLayout layout = new FlowLayout();
talkFrame.setLayout(layout);
//创建组件对象
final JTextArea textAreaShow = new JTextArea(10,30);
final JTextArea textAreaSent = new JTextArea(8,30);
JButton buttonSent = new JButton("发送");
JButton buttonExit = new JButton("关闭");
talkFrame.add(textAreaShow);
talkFrame.add(textAreaSent);
talkFrame.add(buttonExit);
talkFrame.add(buttonSent);
//创建事件监听器
ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent e){
String flag = e.getActionCommand();
if(flag.equals("发送")){
String text = textAreaSent.getText();
textAreaShow.append(text+"\n");
textAreaSent.setText("");
}
else if(flag.equals("关闭")){
talkFrame.setVisible(false);
}
}
};
buttonSent.addActionListener(listener);
buttonExit.addActionListener(listener);
talkFrame.setVisible(true);
}
//主方法
public static void main (String[] args){
QQ2 qq = new QQ2();
qq.showLoginFrame();
}
}
//五子棋代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class FiveChess{
Graphics g;
public void mainUI(){
JFrame chessFrame = new JFrame("五子棋");
chessFrame.setLayout(new FlowLayout());
chessFrame.setSize(530,470);
chessFrame.setLocationRelativeTo(null);
chessFrame.setDefaultCloseOperation(3);
//paint()画图
JPanel qipanPanel = new JPanel(){
public void paint(Graphics g){
super.paint(g);
for(int i=0;i<10;i++){
g.drawLine(40,40*(i+1),400,40*(i+1));
}
for(int i=0;i<10;i++){
g.drawLine(40*(i+1),40,40*(i+1),400);
}
}
};
JPanel functionPanel = new JPanel();
qipanPanel.setPreferredSize(new Dimension(420,420));
qipanPanel.setBackground(Color.red);
functionPanel.setPreferredSize(new Dimension(80,420));
functionPanel.setBackground(Color.blue);
//将两个面板添加到窗体里面
chessFrame.add(qipanPanel);
chessFrame.add(functionPanel);
JButton start = new JButton("开始");
JButton renren = new JButton("人人");
JButton renji = new JButton("人机");
JButton guanyu = new JButton("关于");
JButton Exit =new JButton("退出");
functionPanel.setLayout(new FlowLayout(1,2,40));
functionPanel.add(start);
functionPanel.add(renren);
functionPanel.add(renji);
functionPanel.add(guanyu);
functionPanel.add(Exit);
//创建鼠标监听器对象
MouseListener listener = new MouseListener(){
//监控进入
public void mouseEntered(MouseEvent e){
}
//监控退出
public void mouseExited(MouseEvent e){
}
//监控单击
public void mouseClicked(MouseEvent e){
int x = e.getX();
int y = e.getY();
g.fillOval(x-10,y-10,20,20);
}
//监控按下
public void mousePressed(MouseEvent e){
}
//监控释放
public void mouseReleased(MouseEvent e){
}
};
qipanPanel.addMouseListener(listener);
chessFrame.setVisible(true);
g = qipanPanel.getGraphics();
}
public static void main(String[] args){
FiveChess chess = new FiveChess();
chess.mainUI();
}
}