也是我妹问我的,她们要求直接用代码写,估计若是我长时间不看也写不出来,哈哈,幸好咱有界面设计器(WB)……
我加了个要求,若是原来有文本就清空,刚开始想判断鼠标单击的次数,奇数就显示,偶数就清空,也可以的,只不过或许不保险,反应不过来咋办,哈哈。
//鼠标事件内容是我写的,其它WB搞定
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class MyJFrame extends JFrame {
private JPanel contentPane;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MyJFrame frame = new MyJFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public MyJFrame() {
setTitle("\u6D4B\u8BD5\u7A97\u53E3");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.NORTH);
textField = new JTextField();
panel.add(textField);
textField.setColumns(10);
JButton btnNewButton = new JButton("\u5355\u51FB\u6211");
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
String s = textField.getText();
if(0==s.length()) {//判断文本域为空,方法都忘记了
textField.setText("用户单击了我");//直接这样就显示了
}else
{
textField.setText("");//清空只能这样,没有方法
}
}
});
panel.add(btnNewButton);
}
}
引出下面一个小问题JFrame和JPanel的区别?
JFrame是最底层,JPanel是置于其面上,同一个界面只有一个JFrame,一个JFrame可以放多个JPanel。JFrame是窗口,JPanel是面板,窗口可以有最大最小化,标题栏图标,面板没有。JFrame是界面组件的容器,JPanel也是容器,但是任何组件包括Panel的显示都依赖于frame..