자바 버튼에 이미지 넣기[swing]
- 프로그래밍/JAVA
- 2020. 1. 6.
250x250
자바 버튼에 이미지 넣기[swing]
안녕하세요.
오늘은 버튼에 이미지를 넣어보겠습니다.
- 초기 코드.
- 이미지를 넣은 코드.
- 버튼에 넣은 이미지만 보이게 만들기.
- 실행결과
버튼 코드.
초기 버튼 코드는 프레임에 원하는 버튼 하나를 추가한 코드입니다.
아래 글을 참고하시면 더 쉽게 이해할 수 있을겁니다.
(아래 코드도 있습니다.)
[프로그래밍/JAVA] - java swing 창 만들기
이제부터나오는 코드를 실행했을때의 결과는 아래의 실행결과 부분에서 보실 수 있습니다.
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. 버튼에 추가한 이미지만 보이게 하기.
코드를 조금 수정해서
실행결과.
초기 버튼 코드 실행결과.
(이미지를 넣지 않은 버튼코드)
이미지를 넣은 버튼 코드.
(미완성- 이미지를 넣은 버튼 코드.)