****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();@Overridepublic void keyTyped(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyPressed(KeyEvent e) {if(e.getKeyCode() == KeyEvent.VK_ENTER){showArea.append("My information : " + inputField.getText() + "\n");inputField.setText("");//清除文本输入行}}@Overridepublic void keyReleased(KeyEvent e) {// TODO Auto-generated method stub}});bu1.addActionListener(new ActionListener(){@Overridepublic 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);}
}
下面是运行结果图:
可以点击按钮或者回车键发送信息。