본문 바로가기

OM

성적 그래프 프로그램


GraphExample.java===================================================================================

import java.awt.*;
import javax.swing.*;

public class GraphExample extends JApplet
{
    public void init()
    {
        Container contentPane = getContentPane();

        DrawingPanel drawingPanel = new DrawingPanel();
        contentPane.add(drawingPanel, BorderLayout.CENTER);

        JPanel controlPanel = new JPanel();

        JTextField text1 = new JTextField(3);
        JTextField text2 = new JTextField(3);
        JTextField text3 = new JTextField(3);

        JButton button = new JButton("그래프 그리기");

        controlPanel.add(new JLabel("국어"));
        controlPanel.add(text1);
        controlPanel.add(new JLabel("영어"));
        controlPanel.add(text2);
        controlPanel.add(new JLabel("수학"));
        controlPanel.add(text3);
        controlPanel.add(button);

        contentPane.add(controlPanel, BorderLayout.SOUTH);

        button.addActionListener(new DrawActionListener(text1, text2, text3, drawingPanel));
    }
}

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

DrawingPanel.java===================================================================================

import java.awt.*;
import javax.swing.*;

class DrawingPanel extends JPanel
{
    int korean, english, math;

    public void paint(Graphics g)
    {
        g.clearRect(0, 0, getWidth(), getHeight());

        g.drawLine(50, 250, 350, 250);

        for(int cnt=1; cnt<11; cnt++)
        {
            g.drawString(cnt*10 + "", 25, 255 - 20*cnt);
            g.drawLine(50, 250 - 20*cnt, 350, 250 - 20*cnt);
        }

        g.drawLine(50, 20, 50, 250);
        g.drawString("국어", 100, 270);
        g.drawString("영어", 200, 270);
        g.drawString("수학", 300, 270);
        g.setColor(Color.RED);

        if(korean > 0)
        {
            g.fillRect(110, 250 - korean*2, 10, korean*2);
        }

        if(english > 0)
        {
            g.fillRect(210, 250 - english*2, 10, english*2);
        }

        if(math > 0)
        {
            g.fillRect(310, 250 - math*2, 10, math*2);
        }
    }

    void setScores(int korean, int english, int math)
    {
        this.korean = korean;
        this.english = english;
        this.math = math;
    }
}

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

DrawActionListener.java==============================================================================

import javax.swing.*;
import java.awt.event.*;

class DrawActionListener implements ActionListener
{
    JTextField text1, text2, text3;
    DrawingPanel drawingPanel;

    DrawActionListener(JTextField text1, JTextField text2, JTextField text3, DrawingPanel drawingPanel)
    {
        this.text1 = text1;
        this.text2 = text2;
        this.text3 = text3;
        this.drawingPanel = drawingPanel;
    }

    public void actionPerformed(ActionEvent e)
    {
        try
        {
            int korean = Integer.parseInt(text1.getText());
            int english = Integer.parseInt(text2.getText());
            int math = Integer.parseInt(text3.getText());

            drawingPanel.setScores(korean, english, math);
            drawingPanel.repaint();
        }
        catch(NumberFormatException nfe){
            JOptionPane.showMessageDialog(drawingPanel, "잘못된 숫자 포맷입니다.", "에러 메시지", JOptionPane.ERROR_MESSAGE);
        }
    }
}

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

'OM' 카테고리의 다른 글

동영상 플레이어 (FLVPlayback) 2  (0) 2008.04.10
동영상 플레이어 (FLVPlayback)  (0) 2008.04.10
3X3 Puz  (0) 2008.04.10
Card Match  (0) 2008.04.08
테이블에 행을 추가/삭제하는 프로그램  (0) 2008.04.06
htmlconverter  (0) 2008.04.04
에디트 플러스 자바설정  (0) 2008.03.20
가사가 표시되는 MP3 Player  (0) 2008.03.15
MP3 플레이어  (0) 2008.03.13