****1.JFram 支持通用窗口的所有基本功能
2…JPanel是一个无边框,不可以被移动的,放大的,缩小的,或者关闭的面板,默认布局是FlowLayout(也可用setLayout()来设定)**
3…JScrollPane是一个带有滚动条的面板容器,这个面板容器只可以加一个组件,如果想加多个组件,要把多个组件加到一个组件上,然后再加到面板容器上。**
package tank01;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingUtilities;
public class Draw01 {
public static void main(String[] args) {
SwingUtilities.invokeLater(Draw01::creatAndShowGUI);
}
@SuppressWarnings("all")
private static void creatAndShowGUI() {
JFrame f = new JFrame("wangjie");
f.setSize(500, 500);
f.setLocation(250, 250);
f.setVisible(true);
f.setLayout(new BorderLayout());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// f.addWindowListener(new WindowListener(){
//
// @Override
// public void windowOpened(WindowEvent e) {
// // TODO Auto-generated method stub
// System.out.println("窗口打开事件");
// }
//
// @Override
// public void windowClosing(WindowEvent e) {
// // TODO Auto-generated method stub
// System.out.println("窗口正在关闭事件");
// }
//
// @Override
// public void windowClosed(WindowEvent e) {
// // TODO Auto-generated method stub
// System.out.println("窗口关闭事件");
// }
//
// @Override
// public void windowIconified(WindowEvent e) {
// // TODO Auto-generated method stub
// System.out.println("窗体图表化事件");
// }
//
// @Override
// public void windowDeiconified(WindowEvent e) {
// // TODO Auto-generated method stub
// System.out.println("窗体取消图标化事件");
// }
//
// @Override
// public void windowActivated(WindowEvent e) {
// // TODO Auto-generated method stub
// System.out.println("窗口激活事件");
// }
//
// @Override
// public void windowDeactivated(WindowEvent e) {
// // TODO Auto-generated method stub
// System.out.println("窗体停用事件");
// }
//
// });
// f.setLayout(null);
// JButton bu1 = new JButton("Button");
// bu1.setBounds(20, 20, 20, 20);
// f.add(bu1);
// bu1.setSize(20,20);
// bu1.addMouseListener(new MouseListener(){
//
// @Override
// public void mouseClicked(MouseEvent e) {
// // TODO Auto-generated method stub
System.out.println("鼠标单击事件");
// if(e.getButton() == MouseEvent.BUTTON1){
// System.out.println("鼠标左击事件");
// }else if(e.getButton() == MouseEvent.BUTTON3){
// System.out.println("鼠标右击事件");
// }else if(e.getButton() == MouseEvent.BUTTON2){
// System.out.println("鼠标中键单击事件");
// }
// }
//
// @Override
// public void mousePressed(MouseEvent e) {
// // TODO Auto-generated method stub
// System.out.println("鼠标按压事件");
//
// }
//
// @Override
// public void mouseReleased(MouseEvent e) {
// // TODO Auto-generated method stub
// System.out.println("鼠标放开事件");
//
// }
//
// @Override
// public void mouseEntered(MouseEvent e) {
// // TODO Auto-generated method stub
System.out.println("鼠标进入按钮事件");
//
// }
//
// @Override
// public void mouseExited(MouseEvent e) {
// // TODO Auto-generated method stub
System.out.println("鼠标移出按钮事件");
//
// }
//
// });
//
// JTextField tf = new JTextField(30);
// f.add(tf);
// tf.addKeyListener(new KeyAdapter(){
// public void keyPressed(KeyEvent e){
// char keyChar = e.getKeyChar();
// int keyCode = e.getKeyCode();
// System.out.println(keyChar);
// System.out.println(keyCode);
// }
// });
// JScrollPane pane = new JScrollPane();
// pane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
// pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
//
// JPanel panel = new JPanel();
// panel.add(new JButton("1"));
// panel.add(new JButton("2"));
// panel.add(new JButton("3"));
// panel.add(new JButton("4"));
// JTextField tf = new JTextField(30);
// tf.addKeyListener(new KeyAdapter() {
// public void keyPressed(KeyEvent e) {
// char keyChar = e.getKeyChar();
// int keyCode = e.getKeyCode();
// System.out.println(keyChar);
// System.out.println(keyCode);
// }
// });
// panel.add(tf);
// pane.setViewportView(panel);
// f.add(pane,BorderLayout.CENTER);
// String temp;
JTextArea showArea = new JTextArea(12,34);//获得展示文本界面,不可以编辑
JScrollPane pane = new JScrollPane(showArea);//获得滑动界面
showArea.setEditable(false);
JTextField inputField = new JTextField(20);
JButton bu1 = new JButton(" 发送 ");
inputField.addKeyListener(new KeyListener(){
// String content = inputField.getText();
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
showArea.append("My information : " + inputField.getText() + "\n");
inputField.setText("");//清除文本输入行
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
});
bu1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
String content = inputField.getText();
if(content!=null && !content.trim().equals("")){
showArea.append("My information: "+ content + "\n");
}else{
showArea.append("information can not null \n");
}
inputField.setText("");
}
});
JPanel panel = new JPanel();
JLabel label = new JLabel("输入信息: ");
panel.add(label);
panel.add(inputField);
panel.add(bu1);
f.add(pane,BorderLayout.PAGE_START);
f.add(panel,BorderLayout.PAGE_END);
}
}
下面是运行结果图:
可以点击按钮或者回车键发送信息。