java中怎么把按钮添加到指定的位置。

hackbs 发布于 2013/05/08 15:22
阅读 20K+
收藏 0

其中蓝色的代表按钮,我想把按钮添加到那些位置,请问要怎么布局,有些布局会覆盖我的图片。

 

附上代码:

import javax.swing.*;
import java.awt.*;
public class kj extends JFrame 
{

	public kj()
	{
		//框架中加载面板
		pan p =new pan();
		this.add(p);
	}
	
	public static void main(String[] args)
	{

		
		//创建框架对象   显示框架并且设置它的属性
		kj k = new kj();


		//添加按钮		
		//样式
		/*
        k.setLayout(new GridLayout(6,3,200,2));
		k.add(new JButton ("黑客技术"));
		k.add(new JButton ("渗透知识"));
		k.add(new JButton ("软件破解"));
		k.add(new JButton ("编程大牛"));
		k.add(new JButton ("免杀牛人"));
		k.add(new JButton ("网页设计"));
		k.add(new JButton ("黑客技术"));
		k.add(new JButton ("抓鸡高手"));
		*/
		//属性
		k.setSize(300,400);
		k.setLocation(400,300);
		k.setVisible(true);
		//k.setResizable(false);
		k.setDefaultCloseOperation(k.EXIT_ON_CLOSE);
		
	}
}

/*******************paint**********************/
class pan extends JPanel
{

	
	public void paint(Graphics cs)
	{
		//在面板中显示一下内容
		//我是蛋疼的程序猿
		//我是90's 后
		//我是黑阔
		//我习惯一个人孤独的感觉
		cs.setColor(new Color(0,100,0));
		cs.drawString("我是蛋疼的程序猿", 130, 50);
		cs.drawString("我是90's 后", 130, 70);
		cs.drawString("我是黑阔", 130, 90);
		cs.drawString("我习惯一个人孤独的感觉", 130, 110);
		
		//加载图片
		Image i;
		i=getToolkit().getImage("jpg.jpg");
		cs.drawImage(i, 30, 40, 78, 70, this);
		
	}




}

 

加载中
0
书一
书一
使用gridlayout布局器不可以么?
hackbs
hackbs
图片会被覆盖。
0
Jeky
Jeky

具体尺寸的你自己调整吧:

import javax.swing.*;
import java.awt.*;
public class kj extends JFrame 
{

	public kj()
	{
		//框架中加载面板
		pan p =new pan();
		this.add(p);

		JPanel south = new JPanel(new GridLayout(6,3,200,2));
		south.add(new JButton ("黑客技术"));
		south.add(new JButton ("渗透知识"));
		south.add(new JButton ("软件破解"));
		south.add(new JButton ("编程大牛"));
		south.add(new JButton ("免杀牛人"));
		south.add(new JButton ("网页设计"));
		south.add(new JButton ("黑客技术"));
		south.add(new JButton ("抓鸡高手"));

		this.add(south, BorderLayout.SOUTH);
	}
	
	public static void main(String[] args)
	{

		
		//创建框架对象   显示框架并且设置它的属性
		kj k = new kj();

		//属性
		k.setSize(300,400);
		k.setLocation(400,300);
		k.setVisible(true);
		//k.setResizable(false);
		k.setDefaultCloseOperation(k.EXIT_ON_CLOSE);
		
	}
}

/*******************paint**********************/
class pan extends JPanel
{

	
	public void paint(Graphics cs)
	{
		//在面板中显示一下内容
		//我是蛋疼的程序猿
		//我是90's 后
		//我是黑阔
		//我习惯一个人孤独的感觉
		cs.setColor(new Color(0,100,0));
		cs.drawString("我是蛋疼的程序猿", 130, 50);
		cs.drawString("我是90's 后", 130, 70);
		cs.drawString("我是黑阔", 130, 90);
		cs.drawString("我习惯一个人孤独的感觉", 130, 110);
		
		//加载图片
		Image i;
		i=getToolkit().getImage("jpg.jpg");
		cs.drawImage(i, 30, 40, 78, 70, this);
		
	}




}

0
恺哥
恺哥
最好使用布局管理器来实现
0
hackbs
hackbs

引用来自“Jeky”的答案

具体尺寸的你自己调整吧:

import javax.swing.*;
import java.awt.*;
public class kj extends JFrame 
{

	public kj()
	{
		//框架中加载面板
		pan p =new pan();
		this.add(p);

		JPanel south = new JPanel(new GridLayout(6,3,200,2));
		south.add(new JButton ("黑客技术"));
		south.add(new JButton ("渗透知识"));
		south.add(new JButton ("软件破解"));
		south.add(new JButton ("编程大牛"));
		south.add(new JButton ("免杀牛人"));
		south.add(new JButton ("网页设计"));
		south.add(new JButton ("黑客技术"));
		south.add(new JButton ("抓鸡高手"));

		this.add(south, BorderLayout.SOUTH);
	}
	
	public static void main(String[] args)
	{

		
		//创建框架对象   显示框架并且设置它的属性
		kj k = new kj();

		//属性
		k.setSize(300,400);
		k.setLocation(400,300);
		k.setVisible(true);
		//k.setResizable(false);
		k.setDefaultCloseOperation(k.EXIT_ON_CLOSE);
		
	}
}

/*******************paint**********************/
class pan extends JPanel
{

	
	public void paint(Graphics cs)
	{
		//在面板中显示一下内容
		//我是蛋疼的程序猿
		//我是90's 后
		//我是黑阔
		//我习惯一个人孤独的感觉
		cs.setColor(new Color(0,100,0));
		cs.drawString("我是蛋疼的程序猿", 130, 50);
		cs.drawString("我是90's 后", 130, 70);
		cs.drawString("我是黑阔", 130, 90);
		cs.drawString("我习惯一个人孤独的感觉", 130, 110);
		
		//加载图片
		Image i;
		i=getToolkit().getImage("jpg.jpg");
		cs.drawImage(i, 30, 40, 78, 70, this);
		
	}




}

恩可以了。

就是还想靠中间点,

0
Jeky
Jeky
靠中间可以考虑给south加个emptyborder,然后修改一下那个hgap,也就是200,缩小一点
0
Monkey
Monkey
netbeans gridbaglayout
返回顶部
顶部