Class Test

응용 SoftWare/JAVA 2016. 12. 23. 10:40

메인화면



public class ClassTest {


public ClassTest() {


}


public static void main(String[] args) {

RGB r1 = new RGB(1, 1);

r1.setVisible(true);

RGB r2 = new RGB(510, 1);

r2.setVisible(true);

RGB r3 = new RGB(1, 400);

r3.setVisible(true);

//////

ClockEx ce1 = new ClockEx(1, 800);

ClockEx ce2 = new ClockEx(400, 700);

}


}

=====================================================================
화면2. RGB

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class RGB extends JFrame implements ChangeListener{
JLabel rgbLbl = new JLabel("RGB(150, 150, 150)", JLabel.CENTER);
JPanel rgbView = new JPanel();
int red=150, green=150, blue=150;
Color color = new Color(150, 150, 150);
//패널만들기
JPanel rgbInfo = new JPanel(new BorderLayout());
JPanel labelPane = new JPanel(new GridLayout(3, 1));
JLabel redLbl = new JLabel("RED");
JLabel greenLbl = new JLabel("GREEN");
JLabel blueLbl = new JLabel("BLUE");
JPanel sliderPane = new JPanel(new GridLayout(3, 1));
JSlider redSlider = new JSlider(0, 255, 150);
JSlider greenSlider = new JSlider(0, 255, 150);
JSlider blueSlider = new JSlider(0, 255, 150);
JPanel colorPane = new JPanel(new GridLayout(3, 1));
JLabel redClrLbl = new JLabel("                    ");
JLabel greenClrLbl = new JLabel("                    ");
JLabel blueClrLbl = new JLabel("                    ");
public RGB(){}
public RGB(int x, int y) {
add(rgbLbl, "North");
rgbView.setBackground(color); //패널컬러세팅
add(rgbView, "Center");
labelPane.add(redLbl); labelPane.add(greenLbl); labelPane.add(blueLbl);
rgbInfo.add(labelPane, "West");
redSlider.setMajorTickSpacing(50);
redSlider.setMinorTickSpacing(5);
redSlider.setPaintTicks(true);
redSlider.setPaintLabels(true);
greenSlider.setMajorTickSpacing(50);
greenSlider.setMinorTickSpacing(5);
greenSlider.setPaintTicks(true);
greenSlider.setPaintLabels(true);
blueSlider.setMajorTickSpacing(50);
blueSlider.setMinorTickSpacing(5);
blueSlider.setPaintTicks(true);
blueSlider.setPaintLabels(true);
sliderPane.add(redSlider); sliderPane.add(greenSlider); sliderPane.add(blueSlider);
rgbInfo.add(sliderPane, "Center");
LineBorder lb = new LineBorder(Color.CYAN, 3);
TitledBorder tb = new TitledBorder(lb, "Color Split", TitledBorder.CENTER, 
TitledBorder.CENTER, new Font("Serif", Font.BOLD, 15), Color.BLACK);
rgbInfo.setBorder(tb);
redClrLbl.setOpaque(true);
redClrLbl.setBackground(new Color(150, 0, 0));
greenClrLbl.setOpaque(true);
greenClrLbl.setBackground(new Color(0, 150, 0));
blueClrLbl.setOpaque(true);
blueClrLbl.setBackground(new Color(0, 0, 150));
colorPane.add(redClrLbl); colorPane.add(greenClrLbl); colorPane.add(blueClrLbl);
rgbInfo.add(colorPane, "East");
add(rgbInfo, "South");
setBounds(x, y, 500, 350);
// setSize(500, 350);
// setVisible(true);
//이벤트 등록
redSlider.addChangeListener(this);
greenSlider.addChangeListener(this);
blueSlider.addChangeListener(this);
}
public void stateChanged(ChangeEvent ce){
Object obj = ce.getSource();
if(obj == redSlider){
red = redSlider.getValue();
redClrLbl.setBackground(new Color(red, 0, 0));
}else if(obj == greenSlider){
green = greenSlider.getValue();
greenClrLbl.setBackground(new Color(0, green, 0));
}else if(obj == blueSlider){
blue = blueSlider.getValue();
blueClrLbl.setBackground(new Color(0, 0, blue));
}
rgbView.setBackground(new Color(red, green, blue));
rgbLbl.setText("RGB("+red+", "+green+", "+blue+")");
}
// public static void main(String[] args) {
// new RGB();
//
// }

}
=====================================================================
화면3. 시계

import java.awt.Font;
import java.util.Calendar;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ClockEx2 extends Thread{
JFrame frm = new JFrame("시계");
JLabel timeLbl = new JLabel();
Font fnt = new Font("Serif", Font.BOLD, 100);
public ClockEx2(){}
public ClockEx2(int x, int y){
frm.add(timeLbl, "Center");
timeLbl.setFont(fnt);
setTime();
frm.setBounds(x, y, 400, 200);
// pack();
frm.setVisible(true);
}
//Thread Class의 run() 메소드 오버라이딩
public void run(){
while(true){
try{
Thread.sleep(1000);
}catch(Exception e){}
setTime();
}
}
public void setTime(){
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
String timeStr = "";
if(hour<10){
timeStr="0"+hour+":";
}else{
timeStr=hour+":";
}
if(minute<10){
timeStr+="0"+minute+":";
}else{
timeStr+=minute+":";
}
if(second<10){
timeStr+="0"+second;
}else{
timeStr+=second;
}
timeLbl.setText(timeStr);
}
// public static void main(String[] args) {
// new ClockEx();
//
// }
}


'응용 SoftWare > JAVA' 카테고리의 다른 글

Thread Test 2  (0) 2016.12.23
Thread Test 1  (0) 2016.12.23
JSplitPane 예제2  (0) 2016.12.21
JSplitPane 예제  (0) 2016.12.21
JTree 예제  (0) 2016.12.21
Posted by Hyun CHO
,

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JSplitPane;

import javax.swing.JTextArea;


public class JSplitPaneTest2 extends JFrame{

JSplitPane sp1, sp2;

public JSplitPaneTest2() {

sp2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new CalculatorT(), new SwingCalendar());

sp2.setDividerLocation(385);

sp1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, new Grimpan(), sp2);

sp1.setDividerLocation(300);

add(sp1, "Center");

setSize(800, 600);

setVisible(true);

}


public static void main(String[] args) {

new JSplitPaneTest2();


}


}

=====================================================================

그림판

import java.awt.BorderLayout;

import java.awt.Canvas;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;


import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;


public class Grimpan extends JPanel implements ActionListener {

JPanel p = new JPanel(new GridLayout(1, 0));

JButton penTool = new JButton("펜");

JButton lineTool = new JButton("선");

JButton ovalTool = new JButton("원");

JButton rectTool = new JButton("사각형");

MyCanvas mc = new MyCanvas();

JPanel p2 = new JPanel(new GridLayout(1, 0));

JButton red = new JButton("Red");

JButton green = new JButton("Green");

JButton blue = new JButton("Blue");

JButton yellow = new JButton("Yellow");

String tool = "선", color = "Blue";

public Grimpan() {

setLayout(new BorderLayout());

p.add(penTool); p.add(lineTool); p.add(ovalTool); p.add(rectTool);

add(p, "North");

add(mc, "Center");

red.setBackground(Color.red); green.setBackground(Color.GREEN); blue.setBackground(Color.BLUE); blue.setForeground(Color.WHITE); yellow.setBackground(Color.YELLOW);

p2.add(red); p2.add(green); p2.add(blue); p2.add(yellow);

add(p2, "South");

setSize(500, 500);

setVisible(true);

penTool.addActionListener(this);

lineTool.addActionListener(this);

ovalTool.addActionListener(this);

rectTool.addActionListener(this);

red.addActionListener(this);

green.addActionListener(this);

blue.addActionListener(this);

yellow.addActionListener(this);

}

class MyCanvas extends Canvas implements MouseListener, MouseMotionListener {

int firstX, firstY, lastX, lastY;

int x, y;

MyCanvas() {

addMouseListener(this);

addMouseMotionListener(this);

}

public void paint(Graphics g) {

// color

if (color.equals("Red"))

g.setColor(Color.RED);

else if (color.equalsIgnoreCase("Green"))

g.setColor(Color.GREEN);

else if (color.equals("Blue"))

g.setColor(Color.BLUE);

else if (color.equals("Yellow"))

g.setColor(Color.YELLOW);

// type of drawing tool

if (tool.equals("선"))

g.drawLine(firstX, firstY, lastX, lastY);

else if (tool.equalsIgnoreCase("원"))

g.drawOval(firstX, firstY, (lastX - firstX), (lastY - firstY));

else if (tool.equals("사각형"))

g.drawRect(firstX, firstY, lastX - firstX, lastY - firstY);

else if (tool.equals("펜")) {

g.drawLine(x, y, lastX, lastY);

x = lastX;

y = lastY;

}

}


public void update(Graphics g) {

paint(g);

}

@Override

public void mouseClicked(MouseEvent me) {};

@Override

public void mouseEntered(MouseEvent me) {};

@Override

public void mouseExited(MouseEvent me) {};

@Override

public void mousePressed(MouseEvent me) {

// System.out.println("pressed");

firstX = me.getX();

firstY = me.getY();

x = firstX;

y = firstY;

}

@Override

public void mouseReleased(MouseEvent me) {

// System.out.println("Released");

lastX = me.getX();

lastY = me.getY();

repaint();

}

// MouseMotionListener

@Override

public void mouseDragged(MouseEvent me) {

if (tool.equals("펜")) {

lastX = me.getX();

lastY = me.getY();

repaint();

}

}

@Override

public void mouseMoved(MouseEvent me) {};

}


@Override

public void actionPerformed(ActionEvent ae) {

String eventStr = ae.getActionCommand();

if (eventStr.equals("펜") || eventStr.equals("선") || eventStr.equals("원") || eventStr.equals("사각형"))

tool = eventStr;

else

color = eventStr;

// System.out.println("tool = " + tool + ", " + "color = " + color);

}


public static void main(String[] args) {

new Grimpan();

}

}

=====================================================================
달력
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class SwingCalendar extends JPanel implements ActionListener{
//North
JPanel topPane = new JPanel();
JButton prevBtn = new JButton("◀");
JButton nextBtn = new JButton("▶");
JLabel yearLbl = new JLabel("년");
JLabel monthLbl = new JLabel("월");
JComboBox<Integer> yearCombo = new JComboBox<Integer>();
DefaultComboBoxModel<Integer> yearModel = new DefaultComboBoxModel<Integer>();
JComboBox<Integer> monthCombo = new JComboBox<Integer>();
DefaultComboBoxModel<Integer> monthModel = new DefaultComboBoxModel<Integer>();
//Center
JPanel centerPane = new JPanel(new BorderLayout());
JPanel titlePane = new JPanel(new GridLayout(1, 7));
String titleStr[] = {"일", "월", "화", "수", "목", "금", "토"};
JPanel datePane = new JPanel(new GridLayout(0, 7));
Calendar now;
int year, month, date;
public SwingCalendar() {
setLayout(new BorderLayout());
//setDefaultCloseOperation(DISPOSE_ON_CLOSE); //자원 해제 후 종료
now = Calendar.getInstance(); //현재 날짜
year = now.get(Calendar.YEAR);
month = now.get(Calendar.MONTH)+1;
date = now.get(Calendar.DATE);
topPane.add(prevBtn);
for(int i=year-100; i<=year+50; i++){
yearModel.addElement(i);
}
yearCombo.setModel(yearModel);
yearCombo.setSelectedItem(year); //현재 년도 선택
topPane.add(yearCombo);
topPane.add(yearLbl);
for(int i=1; i<=12; i++){
monthModel.addElement(i);
}
monthCombo.setModel(monthModel);
monthCombo.setSelectedItem(month); //현재 월 선택
topPane.add(monthCombo);
topPane.add(monthLbl);
topPane.add(nextBtn);
topPane.setBackground(new Color(100, 200, 200));
add(topPane, "North");
//Center
titlePane.setBackground(Color.white);
for(int i=0; i<titleStr.length; i++){
JLabel lbl = new JLabel(titleStr[i], JLabel.CENTER);
if(i == 0){
lbl.setForeground(Color.red);
}else if(i == 6){
lbl.setForeground(Color.blue);
}
titlePane.add(lbl);
}
centerPane.add(titlePane, "North");
//날짜 출력
dayPrint(year, month);
centerPane.add(datePane, "Center");
add(centerPane, "Center");
setSize(400, 300);
setVisible(true);
prevBtn.addActionListener(this);
nextBtn.addActionListener(this);
yearCombo.addActionListener(this);
monthCombo.addActionListener(this);
}
//Overring
public void actionPerformed(ActionEvent ae){
Object obj = ae.getSource();
if(obj instanceof JButton){
JButton eventBtn = (JButton)obj;
int yy = (Integer)yearCombo.getSelectedItem();
int mm = (Integer)monthCombo.getSelectedItem();
if(eventBtn.equals(prevBtn)){ //전달
if(mm==1){
yy--; mm=12;
}else{
mm--;
}
}else if(eventBtn.equals(nextBtn)){ //다음달
if(mm==12){
yy++; mm=1;
}else{
mm++;
}
}
yearCombo.setSelectedItem(yy);
monthCombo.setSelectedItem(mm);
}else if(obj instanceof JComboBox){ //콤보박스 이벤트 발생시
createDayStart();
}
}
public void createDayStart(){
datePane.setVisible(false); //패널 숨기기
datePane.removeAll(); //날짜 출력한 라벨 지우기
dayPrint((Integer)yearCombo.getSelectedItem(), (Integer)monthCombo.getSelectedItem());
datePane.setVisible(true); //패널 재출력
}
public void dayPrint(int y, int m){
Calendar cal = Calendar.getInstance();
cal.set(y, m-1, 1); //출력할 첫날의 객체 만든다.
int week = cal.get(Calendar.DAY_OF_WEEK); //1일에 대한 요일 일요일 : 0
int lastDate = cal.getActualMaximum(Calendar.DAY_OF_MONTH); //그 달의 마지막 날
for(int i=1; i<week; i++){ //날짜 출력 전까지의 공백 출력
datePane.add(new JLabel(" "));
}
for(int i=1; i<=lastDate; i++){
JLabel lbl = new JLabel(String.valueOf(i), JLabel.CENTER);
cal.set(y, m-1, i);
int outWeek = cal.get(Calendar.DAY_OF_WEEK);
if(outWeek==1){
lbl.setForeground(Color.red);
}else if(outWeek==7){
lbl.setForeground(Color.BLUE);
}
datePane.add(lbl);
}
}
//public static void main(String[] args) {
// new SwingCalendar();

//}

}
=====================================================================
계산기
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class CalculatorT extends JPanel implements ActionListener {
JFrame jf = new JFrame("계산기");
JLabel jl = new JLabel("0.0", JLabel.RIGHT);
//버튼틀
JPanel jp = new JPanel();
String butValue[] = {"Clear","BackSpace","End","","7","8","9","+","4","5","6","-",
"1","2","3","*","0",".","=","/"};
JButton jb[] = new JButton[20];
public CalculatorT() {
//라벨 추가
//add(jl, "North"); //BorderLayout.NORTH
setLayout(new BorderLayout());
//버튼
jp.setLayout(new GridLayout(5, 4));
for(int i=0; i<butValue.length; i++){ //버튼 생성, 패널 추가
jb[i] = new JButton(butValue[i]);
jp.add(jb[i]); //패널추가
jb[i].addActionListener(this); //이벤트 등록
}
add(jp, BorderLayout.CENTER);
//jf.setSize(400, 400);
//jf.setVisible(true);
}
//오버라이딩
public void actionPerformed(ActionEvent ae){}

// public static void main(String[] args) {
// new CalculatorT();
//
// }

}


'응용 SoftWare > JAVA' 카테고리의 다른 글

Thread Test 1  (0) 2016.12.23
Class Test  (0) 2016.12.23
JSplitPane 예제  (0) 2016.12.21
JTree 예제  (0) 2016.12.21
Thread를 이용한 디지털 시계  (0) 2016.12.21
Posted by Hyun CHO
,

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JSplitPane;

import javax.swing.JTextArea;


public class JSplitPaneTest extends JFrame{

JSplitPane sp1, sp2;

public JSplitPaneTest() {

sp2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, new JTextArea("위"), new RGB2());

sp2.setDividerLocation(300);

sp1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new JButton("확인"), sp2);

sp1.setDividerLocation(300); //경계선의 위치

//sp1.setDividerSize(5); //경계선의 두께

sp1.setOneTouchExpandable(true); //경계선 내에 확장, 축소 버튼 표시

add(sp1, "Center");

setSize(800, 600);

setVisible(true);

}


public static void main(String[] args) {

new JSplitPaneTest();

}


}

=====================================================================
RGB 소스

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class RGB2 extends JPanel implements ChangeListener{
JLabel rgbLbl = new JLabel("RGB(150, 150, 150)", JLabel.CENTER);
JPanel rgbView = new JPanel();
int red=150, green=150, blue=150;
Color color = new Color(150, 150, 150);
//패널만들기
JPanel rgbInfo = new JPanel(new BorderLayout());
JPanel labelPane = new JPanel(new GridLayout(3, 1));
JLabel redLbl = new JLabel("RED");
JLabel greenLbl = new JLabel("GREEN");
JLabel blueLbl = new JLabel("BLUE");
JPanel sliderPane = new JPanel(new GridLayout(3, 1));
JSlider redSlider = new JSlider(0, 255, 150);
JSlider greenSlider = new JSlider(0, 255, 150);
JSlider blueSlider = new JSlider(0, 255, 150);
JPanel colorPane = new JPanel(new GridLayout(3, 1));
JLabel redClrLbl = new JLabel("                    ");
JLabel greenClrLbl = new JLabel("                    ");
JLabel blueClrLbl = new JLabel("                    ");
public RGB2() {
setLayout(new BorderLayout());
add(rgbLbl, "North");
rgbView.setBackground(color); //패널컬러세팅
add(rgbView, "Center");
labelPane.add(redLbl); labelPane.add(greenLbl); labelPane.add(blueLbl);
rgbInfo.add(labelPane, "West");
redSlider.setMajorTickSpacing(50);
redSlider.setMinorTickSpacing(5);
redSlider.setPaintTicks(true);
redSlider.setPaintLabels(true);
greenSlider.setMajorTickSpacing(50);
greenSlider.setMinorTickSpacing(5);
greenSlider.setPaintTicks(true);
greenSlider.setPaintLabels(true);
blueSlider.setMajorTickSpacing(50);
blueSlider.setMinorTickSpacing(5);
blueSlider.setPaintTicks(true);
blueSlider.setPaintLabels(true);
sliderPane.add(redSlider); sliderPane.add(greenSlider); sliderPane.add(blueSlider);
rgbInfo.add(sliderPane, "Center");
LineBorder lb = new LineBorder(Color.CYAN, 3);
TitledBorder tb = new TitledBorder(lb, "Color Split", TitledBorder.CENTER, 
TitledBorder.CENTER, new Font("Serif", Font.BOLD, 15), Color.BLACK);
rgbInfo.setBorder(tb);
redClrLbl.setOpaque(true);
redClrLbl.setBackground(new Color(150, 0, 0));
greenClrLbl.setOpaque(true);
greenClrLbl.setBackground(new Color(0, 150, 0));
blueClrLbl.setOpaque(true);
blueClrLbl.setBackground(new Color(0, 0, 150));
colorPane.add(redClrLbl); colorPane.add(greenClrLbl); colorPane.add(blueClrLbl);
rgbInfo.add(colorPane, "East");
add(rgbInfo, "South");
// setSize(500, 350);
// setVisible(true);

//이벤트 등록
redSlider.addChangeListener(this);
greenSlider.addChangeListener(this);
blueSlider.addChangeListener(this);
}
public void stateChanged(ChangeEvent ce){
Object obj = ce.getSource();
if(obj == redSlider){
red = redSlider.getValue();
redClrLbl.setBackground(new Color(red, 0, 0));
}else if(obj == greenSlider){
green = greenSlider.getValue();
greenClrLbl.setBackground(new Color(0, green, 0));
}else if(obj == blueSlider){
blue = blueSlider.getValue();
blueClrLbl.setBackground(new Color(0, 0, blue));
}
rgbView.setBackground(new Color(red, green, blue));
rgbLbl.setText("RGB("+red+", "+green+", "+blue+")");
}
}


'응용 SoftWare > JAVA' 카테고리의 다른 글

Class Test  (0) 2016.12.23
JSplitPane 예제2  (0) 2016.12.21
JTree 예제  (0) 2016.12.21
Thread를 이용한 디지털 시계  (0) 2016.12.21
[Swing] 달력만들기  (0) 2016.12.16
Posted by Hyun CHO
,