계산기만들어 보면서 모르는 것들 정리

윤재열·2022년 1월 13일
0

Swing

목록 보기
7/10
post-thumbnail

setEditable()

-JTextField에 입력을 불가하게 만들어야 되는경우에 항상 setEnabled(false)를 썼는데 setEnabled(false)를하면 텍스트의 색상이 하얀색으로 고정되어 버린다.
입력은 불가하면서 텍스트 색상도 바꾸고 싶다면 setEditable(false)를 사용하면 된다.

package GUI프로그래밍공부해보자;

import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class JTextFieldTest extends JFrame{

    public JTextFieldTest() {
        setLayout(new FlowLayout());
        setSize(500,500);
        //JTextField wtf = new JTextField("숫자를 입력하세요",15);  //열의개수가 15개이고 ,"숫자를 입력하세요"로 초기된 텍스트필스
        JTextField jtf = new JTextField(15);    //입력창의 열의 개수가 15개(입력창의 길이)
        //JTextField:한줄의 입력받는창
//        = 텍스트 입력 도중 <ENTER> 키가 입력되면 Action 이벤트 발생
//                = 입력 가능한 문자 개수와 입력 창의 크기는 서로 다름

        jtf.setText("setEditable(false)");
                jtf.setForeground(Color.red); // 텍스트 빨간색으로 변경
        jtf.setEditable(false); //setEnabeld(false)를 했을때는 텍스트 색상을 바꿀려고 시도해봐도 적용이 안되는 것을 볼 수 있다.
        // 그리고 마우스로 클릭하거나 드래그해봐도 아무런 액션도 할 수 없었다.
        //jtf.setEditable(true)일떄는 값을 입력할 수 있다.

        add(jtf);   //JFrame에 jtf를 넣는다.
        setVisible(true);
        setLocationRelativeTo(null);    //창을 화면 가운데 띄우는 역할을 한다.
        setDefaultCloseOperation(EXIT_ON_CLOSE);    //윈도우창 종료시 프로세스까지 모두 닫을 수 있다,
    }

    public static void main(String[] args) {
        new JTextFieldTest();	//객체 출력
    }
}

setHorizontalAligment()

label.setHorizontalAlignment(JLabel.CENTER); //JLabel 가운데 정렬
label.setHorizontalAlignment(JLabel.LEFT); //JLabel 왼쪽 정렬
label.setHorizontalAlignment(JLabel.RIGHT); //JLabel 오른쪽 정렬

setFont()

Font 객체명 = new Font(적용사항);
Font font = new Font("글자체","효과","글자 크기");
//글자체 : Arial,Italic 등등
//효과 : Bold(진하게),Italic(기울여서),Plain(보통)
//글자 크기 : int 로 입력
//폰트적용 : 적용할객체명.setFont(폰트객체명)
package GUI프로그래밍공부해보자;
import javax.swing.*;
import java.awt.*;

class setFontEx extends JFrame{
    setFontEx(){
        this.setTitle("setFont 사용 예제");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        MyPanel panel = new MyPanel();
        this.add(panel, BorderLayout.CENTER);
        this.setLocationRelativeTo(null);
        this.setSize(600,300);
        this.setVisible(true);
    }
    class MyPanel extends JPanel{
        public void paintComponent(Graphics g){
            super.paintComponent(g);
            g.setColor(Color.green);
            Font f = new Font("Arial", Font.ITALIC, 30);
            g.setFont(f);
            g.drawString("자바는 재밌다.~~", 30, 30);
            g.setFont(new Font("궁서체",Font.BOLD, 40));
            g.drawString("자바는 재밌다.~~", 30, 90);
            g.setFont(new Font("돋움체", Font.CENTER_BASELINE, 50));
            g.drawString("자바는 재밌다.~~", 30, 170);
        }
    }
}
public class JavaApplication6 {
    public static void main(String[] args) {
        new setFontEx();
    }

}

setBackground(),setForeground()

package GUI프로그래밍공부해보자;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class PanelLayoutExam extends JFrame {

    JButton btn1 = new JButton("WestButton");
    JButton btn2 = new JButton("CenterButton");

    JPanel jpn = new JPanel();
    JButton btn3 = new JButton("File");
    JButton btn4 = new JButton("Help");

    public PanelLayoutExam() {
        super("PanelLayoutExam");
        // 레이아웃 변경

        // JPanel에 컴포넌트 추가
        jpn.add(btn3);
        jpn.add(btn4);

        // JFrame에 컴포넌트 추가
        add(jpn, "North");
        add(btn1, "West");
        add(btn2, "Center");

        // 크기
        setSize(300, 200);
        // super.pack();    //프레임을 크기를 추가한 컴포넌트들의 크기에 맞도록 조절한다.
        // 보이기
        setVisible(true);

        // 바탕색 변경
        jpn.setBackground(new Color(27, 61, 18));
        btn1.setBackground(new Color(233, 247, 222));
        btn2.setBackground(new Color(201, 231, 248));
        btn3.setBackground(Color.white);
        btn4.setBackground(Color.white);

        // 글꼴 변경
        btn2.setFont(new Font("굴림체", Font.ITALIC, 20));
        // Font(String name, int style, int size)
        btn1.setFont(new Font("궁서체", Font.BOLD, 15));

        // 글자색 변경
        btn1.setForeground(new Color(0, 200, 120));
        btn2.setForeground(new Color(228, 194, 78));
        btn3.setForeground(Color.red);
        btn4.setForeground(Color.blue);
        // x : 종료
        super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

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

profile
블로그 이전합니다! https://jyyoun1022.tistory.com/

0개의 댓글