220829 오전 수업 (JFrame)
2022. 8. 29. 13:50ㆍ카테고리 없음
window builder를 Eclipse Marketplace에서 검색 및 설치
이런 코드를 작성하면 하얀 java 창이 뜬다.
JFrame 파일을 생성하면 위와 같은 코드가 기본적으로 작성되어있고 실행시키면 마찬가지로 하얀 창이 뜬다.
absolute layout 선택하면 자유로운 배치 가능.
빨간 색 버튼을 눌러서 이벤트를 보거나 생성할 수 있다.
clicked=클릭
entered = 마우스가 올려졌을 때
exited=마우스가 버튼 바깥으로 나갈 때
pressed=마우스를 누르고 있었을 때
released=마우스를 누르고 있다가 떼었을 때
생성할 이벤트를 더블클릭하고 해당 코드를 작성하면 "Good Morning"이던 텍스트가 버튼을 눌렀을 때 "Good Evening"로 바뀐다.
버튼을 클릭할 때마다 100씩 늘어나도록 코드 작성했음
버튼 누르면 곱셈이 되도록하는 이벤트 코드
package day04;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Random;
public class MySwing04 extends JFrame {
private JPanel contentPane;
JLabel lbl1;
JLabel lbl2;
JLabel lbl3;
JLabel lbl4;
JLabel lbl5;
JLabel lbl6;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MySwing04 frame = new MySwing04();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public MySwing04() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
lbl1 = new JLabel("_");
lbl1.setBounds(27, 48, 57, 15);
contentPane.add(lbl1);
lbl2 = new JLabel("_");
lbl2.setBounds(96, 48, 57, 15);
contentPane.add(lbl2);
lbl3 = new JLabel("_");
lbl3.setBounds(165, 48, 57, 15);
contentPane.add(lbl3);
lbl4 = new JLabel("_");
lbl4.setBounds(234, 48, 57, 15);
contentPane.add(lbl4);
lbl5 = new JLabel("_");
lbl5.setBounds(303, 48, 57, 15);
contentPane.add(lbl5);
lbl6 = new JLabel("_");
lbl6.setBounds(365, 48, 57, 15);
contentPane.add(lbl6);
JButton btn = new JButton("로또 번호 생성하기");
btn.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
getLotto();
}
});
btn.setBounds(126, 118, 165, 23);
contentPane.add(btn);
}
public void getLotto() {
int[] arr45=
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45};
for(int i=0; i<1000;i++) {
int rnd = (int)(Math.random()*45);
int a = arr45[rnd];
int b = arr45[0];
arr45[0]=a;
arr45[rnd]=b;
}
lbl1.setText(arr45[0]+"");
lbl2.setText(arr45[1]+"");
lbl3.setText(arr45[2]+"");
lbl4.setText(arr45[3]+"");
lbl5.setText(arr45[4]+"");
lbl6.setText(arr45[5]+"");
}
}
로또 번호 띄우는 코드!