JTextPane

 * JTextPane을 사용하면 폰트,굵기, 기울임, 정렬 같은 다양한 서식을 사용할 수 있다.
 * 1)SimpleAttributeSet객체를 생성한다.
 * 2)StyleConstants클래스의 static메소드를 통해 1번 객체에 스타일 속성을 설정한다.
 * 3)StyleDocument의 setCharacterAttribute() 또는 setParagraphAttributes()
 * -setCharacterAttribute() : 문자 특성(폰트,기울임, 강조, 밑줄, 글자색 등)
 * -setParagraphAttributes() : 문단 특성(문단 정렬, 들여쓰기, 문단 사이 간격
 *  등의 메소드를 통해 원하는 영역에 스타일을 적용한다.

package javachat;

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

public class JTextPaneDemo extends JFrame{
	JTextPane tp;
	JScrollPane sp;
	JPanel p = new JPanel(new BorderLayout());
	StyledDocument doc;//
	
	public JTextPaneDemo() {
		super("::JTextPaneDemo::");
		Container cp = getContentPane();
		cp.add(p,"Center");
		p.setBackground(Color.white);
		tp = new JTextPane();
		sp = new JScrollPane(tp);
		p.add(sp,"Center");
		tp.setText("asdfasdfasdfsdfsdfsdfsdfsdasdfasasdfa");
		//1. 문서 모델 얻기
		doc=tp.getStyledDocument();//텍스트페인의 문서 모델
		//2. SimpleAttributeSet객체 생성
		SimpleAttributeSet attr= new SimpleAttributeSet();
		//attr에 style속성을 부여한다.
		//4.문서 모델에 해당 속성(attr)을 적용시킨다.
		StyleConstants.setFontFamily(attr, "궁서체");
		StyleConstants.setFontSize(attr, 28);
		StyleConstants.setItalic(attr, true);
		StyleConstants.setForeground(attr, Color.magenta);
		doc.setCharacterAttributes(0,20,attr,true);
		
		//문단 특성 적용
		attr=new SimpleAttributeSet();
		StyleConstants.setAlignment(attr, StyleConstants.ALIGN_CENTER);
		doc.setParagraphAttributes(0, tp.getText().length(), attr, true);
		
		//문서 끝에 문자열 추가
		int caretPos=doc.getEndPosition().getOffset()-1;//문서끝의 커릿 위치
		tp.setCaretPosition(caretPos);
		
		attr= new SimpleAttributeSet();
		StyleConstants.setFontSize(attr, 30);
		StyleConstants.setForeground(attr, Color.blue);
		try {
			doc.insertString(caretPos, "\n이만 총총..\n", attr);
		} catch (BadLocationException e) {
			System.out.println("예외"+e);
		}
		//텍스트페인에 라벨 띄우기
		String str="[Bangry님]\r\n";
		ImageIcon icon = new ImageIcon(getClass().getResource("11.PNG"));
		JLabel lb = new JLabel(str,icon,JLabel.CENTER);
		lb.setPreferredSize(new Dimension(90,90));

		attr= new SimpleAttributeSet();
		StyleConstants.setAlignment(attr, StyleConstants.ALIGN_RIGHT);
		
		tp.setCaretPosition(doc.getEndPosition().getOffset()-1);
		tp.insertComponent(lb);
		
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args) {
		JTextPaneDemo ss = new JTextPaneDemo();
		ss.setSize(500,500);
		ss.setVisible(true);
	}
}

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
Math객체

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Math의 주요 함수</h1>
    <script>
        function print(str){
            document.write("<h1>"+str+"</h1>");
        }
        var num = 23.4678;
        var val = Math.round(num); //반올림
        print(val);

        val=Math.floor(num);//내림 함수
        print(val);

        val=Math.ceil(num);
        print(val);

        var mx=Math.max(10,20,40);//최대값을 반환
        print(mx);

        var min=Math.min(20,40,10);//최소값을 반환
        print(min);

        document.write("<hr color='red'>");

        var h =Math.random(); //0.0<=r<1.0 사이의 값이 나온다.
        print(h);
        //0<=r2<10 임의의 정수를 발생시켜 출력
        print(parseInt(h*10));
        //45<=r3<68 임의의 정수 발생
        print(parseInt(23*h+45));
        
        print(Math.PI);
    </script>
</body>
</html>

가위바위보

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>가위 바위 보</h1>
    <button id="btnStart" >게임 시작</button>
    <div id="result"> </div>
    <script>
        var obj = document.getElementById("btnStart");
        var list=['가위','바위','보'];
        obj.onclick=function(){
            startGame();
        }
        function startGame(){
            var me = window.prompt("가위바위보 내세요","보");
            var mer;
            var str;
            //가위 0 바위 1 보 2
            if(me==list[0]){
                mer=0;
            }else if(me==list[1]){
                mer=1;
            }else if(me==list[2]){
                mer=2;
            }
            //컴퓨터는 랜덤한 정수값을 0,1,2 중 하나를 발생
            var com = parseInt(Math.random()*3);
            //경우의 수를 봅아 비긴경우, 이긴경우 진경우 조건을 판별하여 결과 메시지를 저장
            if(mer==0){
                if(com==0){
                    str="비김";
                }else if(com==1){
                    str="짐";
                }else if(com==2){
                    str="이김";
                }
            }else if(mer==1){
                if(com==1){
                    str="비김";
                }else if(com==2){
                    str="짐";
                }else if(com==0){
                    str="이김";
                }
            }else if(mer==2){
                if(com==2){
                    str="비김";
                }else if(com==1){
                    str="이김";
                }else if(com==0){
                    str="짐";
                }
            }
            //result인 div에 이미지 파일과 함께 출력
            var objr = document.getElementById("result");
            objr.innerHTML="나:"+"<img src='images/"+list[mer]+".PNG'>";
            objr.innerHTML+="컴:"+"<img src='images/"+list[com]+".PNG'>";
            objr.innerHTML+=str;
        }
        

    </script>
    
</body>
</html>

 

 

+ Recent posts