package com.sb;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
import java.util.Scanner;
public class Frame extends JFrame{
static Font font= new Font(null,Font.ITALIC, 30);
public static void main(String [] arg){
new Frame().Creat();
}
public void Creat(){
setFont(font);
setLayout(null);
setBounds(200, 200, 700 , 700); //JFrame 默认是 borderLayout 布局 JFrame 自身就是一个容器 可以直接add() 也可以用 getContentPane 获得
setTitle("zhanging");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
ImageIcon wrong=new ImageIcon("wrong.png");//“图片名字” 位置 是项目的根目录 可以用 bin/scr/图片名字.jpg 的路径名;
wrong.setDescription("ming");// 可以为 图片添加 描述 界面不显示 但是可以用 getDescribtion;
ImageIcon right=new ImageIcon("right.png");
JCheckBox man= new JCheckBox("man",wrong,false);
JCheckBox woman=new JCheckBox("women",right,false);
ButtonGroup group= new ButtonGroup();//可以 添加 单选 JRaidoButton 做 选项组 只可以选择一个
JTextArea jt=new JTextArea("begin",5,10); //初始化
jt.setLineWrap(true); //可以使JTextArea 自动换行
JScrollPane js=new JScrollPane(jt); // jt添加 到 JS 里后 不考虑 jt 的初设定的行数和列数 直接填充 js
jt.setFont(font); //设置字体
js.setBounds(50, 350, 600, 250);
jt.setCaretPosition(jt.getText().length()); //自动下滑到最下方
class action implements ItemListener{ //局部内部类 可以 直接用 但是 内部类 要有外部类对象支持!
public void itemStateChanged(ItemEvent e) { //选项事件 取消 和创建 都会产生一个 事件
jt.append(String.format("%d", jt.getText().length()));
if(e.getSource()==man) {
man.setIcon(right);
woman.setIcon(wrong);
jt.append("m"); //添加到后方
}
else {
man.setIcon(wrong);
woman.setIcon(right);
jt.append("w");
}
}
}
action ac=new action();
man.addItemListener(ac);
woman.addItemListener(ac);
man.setBounds(50, 50, 300, 250);
man.setFont(font);
woman.setFont(font);
woman.setBounds(400, 50,300, 250);
add(man);
add(woman);
Container con= getContentPane();
setBackground(Color.RED);
add(js);
setVisible(true); //必须把窗体内的所有组件 都配置好 之后 在显示 窗体 否则会出现 指针碰一下 才出来组件的情况
}
}
JTextArea 和 JScrollPane
最新推荐文章于 2024-05-24 03:22:40 发布