AWT:
1 创建框架
2 加入容器
3 容器里添加布局方式
Frame frame=new Frame("AWT窗口"); //创建Frame框架
Container con=new Container(); //获得窗口的底层容器
con.setLayout(new FlowLayout());//容器里的布局方式
Button btn=new Button("确定");//生成按钮
con.add(btn);
Button btn1=new Button("取消");
con.add(btn1);
frame.add(con);
frame.setSize(300,300);//设置窗口大小
frame.setVisible(true);//设置窗口是否可见,默认不可见
frame.setLocation(200, 200);//设置窗口当前位置
类继承:extends Applet, Applet是java编写的一些小应用程序,嵌入在页面中支持浏览器解释执行,比如简易的计算器,网页的广告
//在程序加载的时候自动调用
@Override
public void init() {
Button btn=new Button("确定");
this.add(btn);
super.init();
}
//程序启动的时候调用
@Override
public void start() {
super.start();
}
//程序停止的时候调用
@Override
public void stop() {
super.stop();
}
//程序销毁的时候调用
@Override
public void destroy() {
super.destroy();
}
Swing:控件前面加J
//Jframe继承Frame,支持Swing组件
JFrame jframe=new JFrame();
//设置容器
Container con=jframe.getContentPane();
//设置布局
con.setLayout(new FlowLayout());
JButton
JButton btn=new JButton("确定");
btn.setText("设置文字");
String btnText=btn.getText();
//设置按钮不可用
//btn.setEnabled(false);
//设置按钮文字颜色
btn.setForeground(Color.blue);
con.add(btn);
JLabel lab=new JLabel("lala");
lab.setForeground(Color.red);
con.add(lab);
JTextField field=new JTextField(5);
field.setText("文本行");
//设置对其方式
field.setHorizontalAlignment(JTextField.RIGHT);
//不能编辑
field.setEditable(false);
con.add(field);
JPasswordField pwd=new JPasswordField(2);
//设置回写字符,输入什么都是同一个字符
pwd.setEchoChar('6');
//获得密码框中的内容,得到的是char[]
String pw=pwd.getPassword().toString();
con.add(pwd);
JTextArea area=new JTextArea(3,5);//三行两列
//设置文本域自动换行
area.setLineWrap(true);
//加滚动条,创建滚动面板
JScrollPane scrol=new JScrollPane(area);
//滚动条一直出现
scrol.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
con.add(scrol);
JRadioButton rb1=new JRadioButton("男");
JRadioButton rb2=new JRadioButton("女");
//添加逻辑分组
ButtonGroup bg=new ButtonGroup();
bg.add(rb1);
bg.add(rb2);
con.add(rb2);
con.add(rb1);
JCheckBox box1=new JCheckBox("篮球");
JCheckBox box2=new JCheckBox("足球");
JCheckBox box3=new JCheckBox("棒球");
con.add(box1);
con.add(box2);
con.add(box3);
String[] pro={"杭州","北京","上海"};
JComboBox cb=new JComboBox(pro);
//设置初始显示的值
// cb.setSelectedIndex(1);
//设置初始显示的值
cb.setSelectedItem("上海");
//增加选项
cb.addItem("深圳");
//获得当前选项的值
String value=cb.getSelectedItem().toString();
System.out.println(value);
con.add(cb);
JMenuBar bar=new JMenuBar();
//创建菜单项,如果有下一集子菜单用JMenu,没有则用JMenuItem
JMenu menu=new JMenu("File");
JMenu newP=new JMenu("New");
JMenuItem jp=new JMenuItem("java project");
JMenuItem close=new JMenuItem("close");
newP.add(jp);
menu.add(newP);
//添加分隔符
menu.addSeparator();
menu.add(close);
bar.add(menu);
//添加菜单栏
jframe.setJMenuBar(bar);
Object[] obj={"学号","姓名","年龄","成绩"};
DefaultTableModel model=new DefaultTableModel(obj,0);
//通过制定表格模型创建表格
JTable table=new JTable(model);
JScrollPane pane=new JScrollPane(table);
//往表格末尾添加数据
Object[] rowDate1={"1001","蝴蝶","111","79"};
Object[] rowDate2={"1002","萌萌","221","71"};
Object[] rowDate3={"1003","拉拉","124","89"};
Object[] rowDate4={"1004","醉醉","121","76"};
model.addRow(rowDate1);
model.addRow(rowDate2);
model.addRow(rowDate3);
model.addRow(rowDate4);
//获得指定单元格数据
Object oo=model.getValueAt(2, 3);
//修改指定单元格内容
model.setValueAt("浩浩", 1, 1);
//获得行数
int rows=table.getRowCount();
int col=table.getColumnCount();
//删除行,根据行的索引来删除
//model.removeRow(0);
//删除所有
//model.setRowCount(0);
for(int i=0;i
//普告知用户某事已发声,: 第一个是frame,第二个是参数消息
JOptionPane.showMessageDialog(null,"你已死亡");
JOptionPane.showMessageDialog(null, "你已死亡", "提示", JOptionPane.INFORMATION_MESSAGE);
//对话框,只询问一个确认问题:JOptionPane.YES_NO_OPTION ;
//返回:是-0,否-1,取消-2
JOptionPane.showConfirmDialog(null,"确定吗?","请选择",JOptionPane.YES_NO_CANCEL_OPTION);
//输入框,提示要求某些输入
String name=JOptionPane.showInputDialog("请输入姓名:");
//上述三项的大统一:showOptionDialog
JFileChooser chooser = new JFileChooser();
// 打开文件选择框,null为默认
chooser.showOpenDialog(null);
// 获得选中的文件
File file = chooser.getSelectedFile();
// 保存文件选择框
chooser.showSaveDialog(null);
File file1 = chooser.getSelectedFile();
if (!file1.exists()) {
try {
file1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
JFileChooser chooser = new JFileChooser();
// 打开文件选择框,null为默认
chooser.showOpenDialog(null);
// 获得选中的文件
File file = chooser.getSelectedFile();
// 保存文件选择框
chooser.showSaveDialog(null);
File file1 = chooser.getSelectedFile();
if (!file1.exists()) {
try {
file1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
布局:
JFrame frame=new JFrame("布局");
Container con=frame.getContentPane();
//流布局
con.setLayout(new FlowLayout());
con.setLayout(new FlowLayout(FlowLayout.LEFT));//左对齐
con.setLayout(new FlowLayout(FlowLayout.LEFT,10,10));//对其方式和间隙
//网格布局
con.setLayout(new GridLayout(5,5));//五行五列
con.setLayout(new GridLayout(4,5,5,5));//四行五列,间隙
for (int i = 0; i <10;i++) {
JButton btn=new JButton("按钮"+i);
con.add(btn);
}
//边界布局
con.setLayout(new BorderLayout());
JButton btn1=new JButton("东");
JButton btn2=new JButton("南");
JButton btn3=new JButton("西");
JButton btn4=new JButton("北");
JButton btn5=new JButton("中");
//中间区域没有组件会被空出来,其他区域没有组件则被填充
con.add(btn1,BorderLayout.EAST);
con.add(btn2,BorderLayout.SOUTH);
con.add(btn3,BorderLayout.WEST);
con.add(btn4,BorderLayout.NORTH);
// con.add(btn5,BorderLayout.CENTER);
//添加面板组件,默认流式布局,剧中对其
JPanel pan=new JPanel();
//也可以设置布局
pan.setLayout(new FlowLayout(FlowLayout.RIGHT));
pan.add(btn5);
con.add(pan,BorderLayout.CENTER);
frame.setSize(300,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
————————————————
事件
事件监听器:ActionListener
1 实现接口 ActionListener
2 实现方法:
@Override
public void actionPerformed(ActionEvent e) {
String string=e.getActionCommand();
System.out.println(string);
if (string.equals("确定")) {
}else {
}
}
鼠标监听事件:
1 实现接口:MouseListener
2 实现方法:
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("我被按住");
int i=e.getButton();//左键是1,右键是3,滚轮是2
int n=e.getClickCount();//点击的次数
Point p=e.getPoint();
System.out.println(p);
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
鼠标事件的抽象适配器:MouseAdapter
1 继承接口MouseAdapter
2 虽然是一个接口,但没有必须实现的方法,可以根据需要重写MouseListener里面的方法,MouseAdapter是继承MouseAdapter接口
键盘监听事件: KeyListener
1 创建一个类实现接口KeyListener
class MyActionKey implements KeyListener
2 实现里面的方法:
@Override
public void keyTyped(KeyEvent e) {
char c=e.getKeyChar();
System.out.println(c);
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}