Java 체크박스 예제

자바에서도 HTML에서 자주 보던 체크박스를 사용할 수 있습니다.

package wed160525; 
 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.applet.Applet; 
 
import javax.swing.*; 
 
class MyFrame extends JFrame implements ActionListener { 
 
  private JButton buttonOK; 
  private JCheckBox onion, cheese, tomato; 
 
  protected MyFrame() { 
    setTitle("체크박스 테스트"); 
    setSize(300, 130); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 
    JLabel label = new JLabel("햄버거에 무엇을 추가하시겠습니까?"); 
    JPanel topPanel = new JPanel(); 
    topPanel.add(label); 
    add(topPanel, BorderLayout.NORTH); 
 
    // 체크 박스 생성 및 추가 
    JPanel panel = new JPanel(); 
    onion = new JCheckBox("양파"); 
    panel.add(onion); 
    cheese = new JCheckBox("치즈"); 
    panel.add(cheese); 
    tomato = new JCheckBox("토마토"); 
    panel.add(tomato); 
    add(panel, BorderLayout.CENTER); 
 
    // 버튼 생성 및 추가 
    buttonOK = new JButton("OK"); 
    JPanel bottomPanel = new JPanel(); 
    bottomPanel.add(buttonOK); 
    add(bottomPanel, BorderLayout.SOUTH); 
    buttonOK.addActionListener(this); 
 
    setVisible(true); 
  } 
 
  public void actionPerformed(ActionEvent e) { 
    if (e.getSource() == buttonOK) { 
      String msg = ""; 
      if (onion.isSelected()) 
        msg += "양파
"; 
      if (cheese.isSelected()) 
        msg += " 치즈"; 
      if (tomato.isSelected()) 
        msg += " 토마토"; 
      msg = "선택한 옵션은 다음과 같습니다.
 " + msg; 
      System.out.println(msg); 
      onion.setSelected(false); 
      cheese.setSelected(false); 
      tomato.setSelected(false); 
    } 
  } 
} 
 
public class CheckBoxTest extends JFrame { 
  public static void main(String[] args) { 
    new MyFrame(); 
  } 
 
} 

Java 이미지 레이블

이미지 레이블 예제입니다.

package wed160525; 
 
import javax.swing.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
 
/** 
 * Created on 2016-05-25. 
 */ 
public class ImageLabelTest extends JFrame implements ActionListener { 
    private JPanel panel; 
    private JLabel label; 
    private JButton button; 
 
    private ImageLabelTest() { 
        setTitle("이미지 레이블"); 
        setSize(300,250); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 
        panel = new JPanel(); 
        label = new JLabel("이미지를 보려면 아래" + 
                "버튼을 누르세요"); 
 
        button = new JButton("이미지 레이블"); 
        ImageIcon icon = new ImageIcon("icon.gif"); 
        button.setIcon(icon); 
        button.addActionListener(this); 
        panel.add(label); 
        panel.add(button); 
 
        add(panel); 
        setVisible(true); 
    } 
 
    public static void main(String[] args) { 
        new ImageLabelTest(); 
    } 
 
    public void actionPerformed(ActionEvent e) { 
        ImageIcon dog = new ImageIcon("dog.gif"); 
        label.setIcon(dog); 
        label.setText(null); 
    } 
} 

Java 덧셈 프로그램

실력 테스트 겸으로 하신 문제입니다.

package wed160525; 
 
import javax.swing.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
 
/** 
 * Created on 2016-05-25. 
 */ 
public class plus extends JFrame{ 
    private JTextField fieldOne = new JTextField(5), /*  텍스트필드 생성 및 초기화 */ 
            fieldTwo = new JTextField(5), 
            fieldThree = new JTextField(5), 
            fieldResult = new JTextField(20); 
    private JLabel labelPlus = new JLabel("+"), /* 레이블 생성 및 초기화 */ 
            labelEqual = new JLabel("="); 
    private JButton button = new JButton("확인"); // 버튼 생성 및 초기화 
    private JPanel panel = new JPanel(), //패널 생성 및 초기화 (panel은 전체패널) 
            panel2 = new JPanel(),//패널1, 2, 3 
            panel3 = new JPanel(), 
            panel1 = new JPanel(); 
    private plus() { 
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); //전체 패널의 레이아웃을 박스레이아웃으로 사용 
        panel1.add(fieldOne); 
        panel1.add(labelPlus); 
        panel1.add(fieldTwo); 
        panel1.add(labelEqual); 
        panel1.add(fieldThree); //각각 하나씩 추가 
 
        button.addActionListener(new ActionListener() { 
            @Override 
            public void actionPerformed(ActionEvent e) { 
                try { 
                    int result = Integer.parseInt(fieldThree.getText()); 
                    int one = Integer.parseInt(fieldOne.getText()); 
                    int two = Integer.parseInt(fieldTwo.getText()); 
                    if (e.getSource() == button) { 
                        if (one + two == result) { 
                            fieldResult.setText("결과가 맞습니다."); 
                        } else { 
                            fieldResult.setText("결과가 틀립니다."); 
                        } 
                    } 
                } 
                catch (NumberFormatException nfe) { //예외처리 
                    fieldResult.setText("오류 발생!!!!!"); 
                    fieldOne.setText(""); 
                    fieldTwo.setText(""); 
                    fieldThree.setText(""); 
                } 
            } 
        }); 
        panel2.add(button); //버튼 panel2에 추가 
 
        fieldResult.setEditable(false); //수정 못하게 막음 
        panel3.add(fieldResult); //패널3에 추가 
 
        panel.add(panel1); //패널 각각 추가 
        panel.add(panel2); 
        panel.add(panel3); 
 
        this.add(panel); //전체패널 추가 
 
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //종료시 행동 설정 
        this.setSize(300,200); //사이즈 설정 
        this.setTitle("더하기 프로그램"); //타이틀 설정 
 
        this.setVisible(true); //보여지도록 설정 
    } 
 
    public static void main(String[] args) { 
        new plus(); //무명으로 불러냄 
    } 
} 

 

Java 그래픽 프로그램 응용

package graphic; 
 
import java.awt.*; 
import java.awt.event.*; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
 
import javax.imageio.ImageIO; 
import javax.swing.*; 
 
// 소스를 입력하고 Ctrl+Shift+O를 눌러서 필요한 파일을 포함한다.  
 
class MyPanel3 extends JPanel{ 
    Font f1, f2; 
 
  BufferedImage img = null; 
  int img_x = 100, img_y = 100; 
    int img_w = 62, img_h = 45; //w와 h 는 각각 width와 height를 나타냄 
  //이 둘의 수치는 car.gif를 따름 
 
  private Color color = new Color(255,255,255); 
 
  public MyPanel3() { 
    try { 
      img = ImageIO.read(new File("car.gif")); //car.gif를 받아옴 
 
    } catch (IOException e) { //예외처리(car.gif가 없을 경우) 
      System.out.println("no image"); 
      System.exit(1); //프로그램 종료 
    } 
 
        f1 = new Font("Serif", Font.PLAIN, 20); 
        f2 = new Font("San Serif", Font.BOLD, 20); 
 
    addKeyListener(new KeyListener() { 
      public void keyPressed(KeyEvent e) { 
        int keycode = e.getKeyCode(); 
        switch (keycode) { 
        case KeyEvent.VK_UP:	img_y -= 10;	break; 
        case KeyEvent.VK_DOWN:	img_y += 10;	break; 
        case KeyEvent.VK_LEFT:	img_x -= 10;	break; 
        case KeyEvent.VK_RIGHT:	img_x += 10;	break; 
        case KeyEvent.VK_SPACE: changeColor(); break; 
        } 
        repaint(); 
      } 
      public void keyReleased(KeyEvent arg0) { } 
      public void keyTyped(KeyEvent arg0) { } 
            public void changeColor() { //changeColor메소드는 스페이스바가 눌려질 때 마다 호출된다. 
                color = new Color( (int) (Math.random()*255.0), 
                        (int) (Math.random()*255.0), 
                        (int) (Math.random()*255.0) 
                ); 
                //호출됬을 때 색상을 무작위로 하고 
                repaint(); //다시 화면에 그려준다. 
            } 
 
    }); 
 
        addMouseMotionListener(new MouseMotionAdapter() { 
            public void mouseDragged(MouseEvent e) { 
                moveCar(e.getX(), e.getY()); 
            } 
        }); 
    this.requestFocus(); 
    setFocusable(true); 
  } 
 
    private void moveCar(int x, int y) { 
        int OFFSET = 1; 
        if ((img_x != x) || (img_y != y)) { 
            repaint(img_x, img_y, img_w + OFFSET, img_h + OFFSET); 
            img_x = x; 
            img_y = y; 
            repaint(img_x, img_y, img_w + OFFSET, img_h + OFFSET); 
        } 
    } 
 
  public void paintComponent(Graphics g) { 
    super.paintComponent(g); 
        g.setColor(color); //색상은 color에서 받아온다 
        g.fillRect(0,0,600,400); //총 크기는 600 * 400 
 
        g.setFont(f1); 
        g.setColor(Color.black); 
        //여기서 setColor를 따로 주지 않을 시, 
        //폰트 역시 백그라운드 색상과 동일하게 되어 
        //보이지 않게 됨. 
        g.drawString("마우스를 드래그 하면 그림이 움직입니다.", 0, 50); 
        g.setFont(f2); 
        g.setColor(Color.black); 
        g.drawString("스페이스바를 누르면 배경색이 바뀝니다.", 0, 70); 
 
        g.drawImage(img, img_x, img_y, null); 
  } 
} 
 
public class CarGameTest extends JFrame { 
  public CarGameTest() { 
    setSize(600, 400); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        setTitle("그래픽 프로그램 응용"); 
    add(new MyPanel3()); 
    setVisible(true); 
  } 
 
  public static void main(String[] args) { 
    CarGameTest s = new CarGameTest(); 
  } 
}

 

Java MouseAdapter와 MouseMotionAdapter 예제

package gui; 
 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
 
/** 
 * Created by capta on 2016-05-12. 
 */ 
class MyFrame extends JFrame { 
    private JPanel panel; 
    private JLabel label; 
 
    public MyFrame() { 
        setTitle("Mouse Event"); 
        setSize(500, 500); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 
        panel = new JPanel(); 
        panel.setBackground(Color.lightGray); //기본 백그라운드 : 라이트그레이 
 
        panel.addMouseListener(new MyMouseAdapter()); //마우스 어댑터로 마우스이벤트 사용 
        panel.addMouseMotionListener(new MyMouseMotionAdapter()); //마우스 모션어댑터로 모션이벤트 사용 
 
        label = new JLabel(); //좌표출력할 레이블 
        panel.add(label); 
 
        add(panel); 
 
        setVisible(true); 
    } 
    class MyMouseAdapter extends MouseAdapter { //마우스어댑터 
        public void mousePressed(MouseEvent e) { //Pressed일때 
            panel.setBackground(Color.pink); 
        } 
        public void mouseReleased(MouseEvent e) { //Released일때 
            panel.setBackground(Color.lightGray); 
        } 
    } 
    class MyMouseMotionAdapter extends MouseMotionAdapter { //마우스 모션어댑터 
        public void mouseMoved(MouseEvent e) { //마우스가 움직일 때 
        display(e); //display메소드 호출 
        } 
    } 
 
    protected void display(MouseEvent e) { //display메소드 
        label.setText(" X:" + e.getX() + " Y:" + e.getY()); //레이블 텍스트 변경 
    } 
} 
public class MyFrameTest { 
    public static void main(String[] args) { 
        MyFrame t = new MyFrame(); 
    } 
}