您的位置:首页 > 编程语言 > Java开发

JAVA之图标and布局

2016-07-17 23:09 387 查看
drawIcon类


import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

public class test implements Icon{
private int width;
private int height;

public static void main(String[] agrs){
test t = new test(50,50);
//JLabel jl = new JLabel("好小样", t, SwingConstants.CENTER);
JButton jb = new JButton("button", t);
JFrame jf = new JFrame();
Container con = jf.getContentPane();
con.add(jb);
jf.setSize(200,200);
jf.setVisible(true);
}

@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
// TODO Auto-generated method stub
g.fillOval(x,y, width, height);
}

@Override
public int getIconWidth() {
// TODO Auto-generated method stub
return this.width;
}

@Override
public int getIconHeight() {
// TODO Auto-generated method stub
return this.height;
}

public test(int height,int width){
this.height = height;
this.width = width;
}
}


imageIcon
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.net.URL;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

public class test extends JFrame{

public test(){
Container con = getContentPane();
JButton jl = new JButton("jlable窗体");
URL url = test.class.getResource("ii.jpg");//这种jpg格式的url需要

将图片放在和test类同文件中
System.out.println(url);
Icon icon = new ImageIcon(url);
jl.setIcon(icon);
jl.setHorizontalAlignment(SwingConstants.CENTER);
con.add(jl);
setVisible(true);
setSize(300, 300);
}

public static void main(String[] agrs){
new test();
}
}
几个重要的句子:
首先要声明窗体容器,即JFrame 的 container,再把需要添加的组件container.add

绝对布局

public class test extends JFrame{
public test(){
setLayout(null);//关闭布局管理器的自动布局
setBounds(0, 0, 200, 200);
Container con = getContentPane();
JButton jb1 = new JButton("btn1");
JButton jb2 = new JButton("btn2");
jb1.setBounds(10, 10, 100, 20);
jb2.setBounds(50, 50, 100, 20);
con.add(jb1);
con.add(jb2);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}

public static void main(String[] agrs){
new test();
}
}
//自定义

流布局
流布局
public class test extends JFrame{
public test(){
Container con = getContentPane();
setLayout(new FlowLayout(FlowLayout.LEFT,50,50));
for(int i=0;i<10;i++){
con.add(new JButton("button" + i));
}
con.setBackground(Color.cyan);//this.setbackground无法实现
setVisible(true);
setSize(500,500);
}

public static void main(String[] agrs){
new test();
}
}
//根据flowlayout来布局填满

网格布局
网格布局
public class test extends JFrame{
public test(){
Container con = getContentPane();
setLayout(new GridLayout(7,3,5,5));
for(int i=0;i<20;i++){
JButton jb = new JButton("button" + i);
con.add(jb);
}
con.setBackground(Color.cyan);//this.setbackground无法实现
setVisible(true);
setSize(500,500);
}

public static void main(String[] agrs){
new test();
}
}//从左到右,从上到下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图标 布局