자바 버튼에 이미지 넣기[swing]

자바 버튼에 이미지 넣기[swing]

안녕하세요.

오늘은 버튼에 이미지를 넣어보겠습니다.

  • 초기 코드.
  • 이미지를 넣은 코드.
  • 버튼에 넣은 이미지만 보이게 만들기.
  • 실행결과

버튼 코드.

초기 버튼 코드는 프레임에 원하는 버튼 하나를 추가한 코드입니다.

아래 글을 참고하시면 더 쉽게 이해할 수 있을겁니다.

(아래 코드도 있습니다.)

[프로그래밍/JAVA] - java swing 창 만들기

 

java swing 창 만들기

자바 스윙(java swing) 창 만들기 자바에서 gui시작하기. JFrame을 이용해 창을 만드는 방법입니다. 1. Main.java만들기 2. program.java만들기 3. JFrame상속(gui기반의 프로그램을 만들기 위해 상속) 4. JFrame..

intunknown.tistory.com

이제부터나오는 코드를 실행했을때의 결과는 아래의 실행결과 부분에서 보실 수 있습니다.

1. 이미지를 넣지 않은 버튼 코드입니다.

이 코드를 조금 수정해서 버튼에 원하는 이미지를 넣어보겠습니다.

package test01;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Main extends JFrame{
	/*버튼생성*/
	static JButton b1=new JButton("버튼1");
	/*그려주기*/
	private Image background=new ImageIcon(Main.class.getResource("../image/background.png")).getImage();//배경이미지
	/*생성자*/
	public Main() {
		homeframe();
		btn();
	}
	/*프레임 생성 함수*/
	public void homeframe() {
		setTitle("1");//타이틀
		setSize(400,600);//프레임의 크기
		setResizable(false);//창의 크기를 변경하지 못하게
		setLocationRelativeTo(null);//창이 가운데 나오게
		setLayout(null);//레이아웃을 내맘대로 설정가능하게 해줌.
		setVisible(true);//창이 보이게
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//JFrame이 정상적으로 종료되게
	}
	/*버튼설정*/
	public void btn() {
		b1.setLayout(null);//레이아웃
		b1.setBounds(0, 0, 100, 100);//위치,크기
		add(b1);//프레임에 추가
	}
	public void paint(Graphics g) {//그리는 함수
		g.drawImage(background, 0, 0, null);//background를 그려줌
		//paintComponents(g);//add로 추가해준부분을 그려줌
	}
	/*메인함수*/
	public static void main(String[] args){
		new Main();
	}
}

2. 이미지 추가한 코드.

그냥 옛날에 가져온 이미지를 추가해봤습니다.

이 코드를 실행해보면 이미지 아래에 버튼모양이 보여서 매우 거슬립겁니다.

package test01;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Main extends JFrame{
	/*버튼생성*/
	static JButton b1=new JButton("버튼1");
	/*그려주기*/
	private ImageIcon btImage = new ImageIcon(Main.class.getResource("../image/exitButtonP.png"));//나가기버튼 눌렀을 때 이미지
	private Image background=new ImageIcon(Main.class.getResource("../image/background.png")).getImage();//배경이미지
	/*생성자*/
	public Main() {
		homeframe();
		btn();
	}
	/*프레임 생성 함수*/
	public void homeframe() {
		setTitle("1");//타이틀
		setSize(400,600);//프레임의 크기
		setResizable(false);//창의 크기를 변경하지 못하게
		setLocationRelativeTo(null);//창이 가운데 나오게
		setLayout(null);//레이아웃을 내맘대로 설정가능하게 해줌.
		setVisible(true);//창이 보이게
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//JFrame이 정상적으로 종료되게
	}
	/*버튼설정*/
	public void btn() {
		b1.setLayout(null);//레이아웃
		b1.setBounds(0, 0, 100, 100);//위치,크기
		add(b1);//프레임에 추가
		b1.setIcon(btImage);//버튼의 아이콘 설정
	}
	public void paint(Graphics g) {//그리는 함수
		g.drawImage(background, 0, 0, null);//background를 그려줌
		//paintComponents(g);//add로 추가해준부분을 그려줌
	}
	/*메인함수*/
	public static void main(String[] args){
		new Main();
	}
}

3. 버튼에 추가한 이미지만 보이게 하기.

코드를 조금 수정해서 

실행결과.

초기 버튼 코드 실행결과.

(이미지를 넣지 않은 버튼코드)

이미지를 넣은 버튼 코드.

(미완성- 이미지를 넣은 버튼 코드.)

Designed by JB FACTORY