/*
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MyPanel extends JPanel{
ImageIcon icon4 = new ImageIcon("Tetris backg.png");
Image img = icon4.getImage();
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img, 0, 0, this);
}
}
class Main extends JFrame {
int makable = 1;
ImageIcon icon1 = new ImageIcon("Tetris Block 1.png");
ImageIcon icon2 = new ImageIcon("Tetris Block 2.png");
ImageIcon icon3 = new ImageIcon("Tetris Block 3.png");
JLabel la5=new JLabel();
int i;
int lay = la5.getY();
Container c;
public Main() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setContentPane(new MyPanel());
c=getContentPane();
c.setLayout(null);
JLabel[]la=new JLabel[4];
ImageIcon[] names = {icon1, icon2, icon3};
for(i=0;i<3;i++) {
la[i]=new JLabel(names[i]);
c.add(la[i]);
la[i].addMouseListener(new MyMouseListener());
la[i].addKeyListener(new MyKeyListener());
la[i].setSize(70, 70);
la[i].setLocation(i*70, 0);
}
c.add(la5);
la5.setSize(70, 70);
la5.setLocation(i*70, 0);
c.setFocusable(true);
c.requestFocus();
//c.setBackground(c);
setSize(500,500);
setVisible(true);
}
class MyMouseListener extends MouseAdapter{
@Override
public void mousePressed(MouseEvent e) {
if(makable==0) return ;
makable=0;
// TODO Auto-generated method stub
//1. 마우스를 클릭하면 랜덤 블록 생성
int a=(int)(Math.random()*3);
if(a==1) {
la5.setIcon(icon1);
}
else if(a==2) {
la5.setIcon(icon2);
}
else if(a==3){
la5.setIcon(icon3);
}
// 블록 내려오기
int x = (int)(Math.random()*450);
while(true) {
lay=lay+20;
la5.setLocation(x, lay); // 블록 아래로 조금 이동하기
System.out.println(lay);
c.repaint();
c.revalidate();
try {
Thread.sleep(200);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 0.2초 기다리기==200밀리세컨
if(la5.getY()==500) {// 블록이 바닥에 닿았다면
break;
}
}
makable=1;
}
}
class MyKeyListener extends KeyAdapter{
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
switch(e.getKeyCode()) {
case KeyEvent.VK_SPACE:icon1.
}
}
}
public static void main(String[] args) {
new Main();
}
}
*/
/*
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Main extends JFrame{
JLabel la = new JLabel();
ImageIcon[] icons = new ImageIcon[4];
int x=0;
Main(){
Container c = getContentPane();
c.setLayout(null);
c.add(la);
la.setSize(50, 50);
la.setLocation(50, 50);
la.addKeyListener(new Mykey());
la.setFocusable(true);
la.requestFocus();
for(int i=0;i<4;i++) {
String name = "dis"+Integer.toString(i)+".png";
icons[i] = new ImageIcon(name);
}
la.setIcon(icons[x]);
setSize(200, 200);
setVisible(true);
}
class Mykey extends KeyAdapter{
//x 0 1 2 3 4 5 6 7 8
//x%4 0 1 2 3 0 1 2 3 0
public void keyPressed(KeyEvent e) {
if(e.getKeyChar()!=' ') return ;
la.setIcon(icons[x]);
x = (x+1)%4;
}
}
public static void main(String[] args) {
new Main();
}
}
2024.03.06
JSlider
1. 예제 11-14
2. 예제 11-15 (하다가 좀 어려우면 슬라이더 하나만)
3. 실습문제 5번 ( 슬라이더 움직이면 옆에 값 출력하기)
*/
/*
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
public class Main extends JFrame{
JSlider slider=new JSlider(JSlider.HORIZONTAL,0,200,5);
public Main() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container c=getContentPane();
c.setLayout(new FlowLayout());
slider.setPaintLabels(true);
slider.setPaintTicks(true);
slider.setPaintTrack(true);
slider.setMajorTickSpacing(50);
slider.setMinorTickSpacing(10);
slider.addChangeListener(new MychangeListener());
c.add(slider);
setSize(300,100);
setVisible(true);
}
class MychangeListener implements ChangeListener{
public void stateChanged(ChangeEvent e) {
System.out.println(slider.getValue());
}
}
public static void main(String[] args) {
new Main();
}
}*/
/*
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
public class Main extends JFrame{
private JLabel colorLabel;
private JSlider [] sl=new JSlider[3];
public Main() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container c=getContentPane();
c.setLayout(new FlowLayout());
colorLabel = new JLabel("edrftgyhujikol");
for(int i=0;i<sl.length;i++) {
sl[i]=new JSlider(JSlider.HORIZONTAL, 0, 100, 50);
sl[i].setPaintLabels(true);
sl[i].setPaintTicks(true);
sl[i].setPaintTrack(true);
sl[i].setMajorTickSpacing(50);
sl[i].setMinorTickSpacing(10);
sl[i].addChangeListener(new MyChangeListener());
c.add(sl[i]);
}
sl[0].setForeground(Color.WHITE);
sl[1].setForeground(Color.GRAY);
sl[2].setForeground(Color.DARK_GRAY);
int r=sl[0].getValue();
int g=sl[1].getValue();
int b=sl[2].getValue();
colorLabel.setOpaque(true);
colorLabel.setBackground(new Color(r, g, b));
c.add(colorLabel);
setSize(300,230);
setVisible(true);
}
class MyChangeListener implements ChangeListener{
public void stateChanged(ChangeEvent e) {
int r=sl[0].getValue();
int g=sl[1].getValue();
int b=sl[2].getValue();
colorLabel.setBackground(new Color(r,g,b));
}
}
public static void main(String[] args) {
new Main();
}
}*/
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.*;
public class Main extends JFrame{
JSlider slider=new JSlider (JSlider.HORIZONTAL, 100,200,128);
Container c= getContentPane();
JLabel la = new JLabel();
Main(){
c.setLayout(new FlowLayout());
slider.setPaintLabels(true);
slider.setPaintTicks(true);
slider.setPaintTrack(true);
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(10);
c.add(slider);
c.add(la);
la.setBackground(Color.green);
la.setOpaque(true);
//정수인 n을 문자열로 변환 Integer.toString(n)
// 반대로는 Integer.valueOf("123");
slider.addChangeListener((ChangeListener) new MyChangeListener());
setSize(280,100);
setVisible(true);
}
class MyChangeListener implements ChangeListener{
public void stateChanged(ChangeEvent e) {
int n=slider.getValue();
la.setText(Integer.toString(n));
}
}
public static void main(String[] args) {
new Main();
}
}