2024. 1. 3. 15:42ㆍFull Stack Course 풀스택과정/JAVA 자바
배울내용:
Swing으로 자바 GUI 만들기
Eclipse Java Swing
Eclipse 자바 스윙
자바 TextField 이벤트
자바 버튼 이벤트
자바 이벤트
자바 초기화 버튼 만들기
자바 GUI 만들기
make WordChange GUI Java
필자는 이미 자바 GUI Team Project를 2번해서 오랜기간이 지나도 기억이 남는다
우리는 이걸만들어볼것이다
먼저 window builder로 Panel 하나를 만든후
panel의 배치를 absolute 로 설정해준다
그뒤에 원하는 크기의 버튼, 레이블, 텍스트박스를 원하는위치에 넣을수있다
빨간줄에 setLayout(null) 되있으면 absolute 가 된거
그리고 나서
버튼이든 label이든 panel이든 넣어준다
레이블안에 사진 넣는것도 가능하다
파일경로는 저렇게 해서 사진만 뒤에 붙일수있게 해준다
이왕이면 전부 private로 해주고 필요시 static이나 public으로 설정해준다
그리고 이벤트 리스너를 이용해 버튼기능을 만들어준다
이건 글자변경을 클릭하면 버튼안 글씨가 바뀌게 되는것이다
실행하면 이렇다
버튼 클릭전
버튼 클릭후
그리고
문자열 "입력창에 안녕하세요 사리머스 입니다"를 입력하고 "사리머스" 를 "자바는 사랑" 으로 바꿔보면
이렇게 바뀐걸 볼수가있다!
당연 초기화버튼도 잘 작동한다!
다음번에는 계산기를 만들어 보겠다~!
아래는 내가 사용한 코드다
퍼가더라도 출처는 반드시 넣어주도록한다~!
package CARLOS1;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
public class _1_WordChange extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
public static String FilePath = "..\\ProjectTest_CARLOS\\images\\";
// WC_전용 =========================
public static int CK_WordCng = 0;
private JTextArea WC_L_TF_1;
private JTextArea WC_L_TF_2;
private JTextField WC_L_TF_3;
private JTextField WC_L_TF_4;
private JScrollPane WC_L_SP_1;
private JScrollPane WC_L_SP_2;
private JLabel WC_L_INFO_1;
private JLabel WC_L_INFO_2;
private JLabel WC_L_INFO_3;
private JButton WC_B_1_CHG_ALL;
private JButton WC_B_2_RESET;
private JLabel WC_L_INFO_RED;
private JLabel WC_L_BEFORE;
private JLabel WC_L_AFTER;
private JPanel panel_1;
// ================================
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
_1_WordChange frame = new _1_WordChange();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public _1_WordChange() {
/////////
// MAIN
/////////
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(0, 0, 1400, 1000);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel Mainpanel = new JPanel();
Mainpanel.setBounds(1026, 69, 214, 70);
contentPane.add(Mainpanel);
Mainpanel.setLayout(null);
JButton m_WordCngBtn = new JButton("글자 변경");
m_WordCngBtn.setBounds(0, 0, 214, 70);
Mainpanel.add(m_WordCngBtn);
m_WordCngBtn.setFont(new Font("맑은 고딕", Font.BOLD, 20));
panel_1 = new JPanel();
panel_1.setBorder(new LineBorder(new Color(255, 0, 0), 3, true));
panel_1.setBounds(140, 500, 1100, 400);
contentPane.add(panel_1);
WC_B_1_CHG_ALL = new JButton("변경\n실행");
WC_B_1_CHG_ALL.setBounds(938, 32, 150, 343);
WC_B_1_CHG_ALL.setFont(new Font("한컴 고딕", Font.PLAIN, 30));
WC_L_TF_1 = new JTextArea();
WC_L_TF_1.setBounds(1, 1, 501, 143);
panel_1.add(WC_L_TF_1);
WC_L_TF_2 = new JTextArea();
WC_L_TF_2.setColumns(10);
WC_L_TF_2.setBounds(20, 245, 503, 145);
WC_L_SP_1 = new JScrollPane(WC_L_TF_1);
WC_L_SP_1.setBounds(20, 50, 503, 145);
WC_L_SP_2 = new JScrollPane(WC_L_TF_2);
WC_L_SP_2.setBounds(20, 245, 503, 145);
WC_L_INFO_1 = new JLabel("문자열 전체 입력창");
WC_L_INFO_1.setBounds(10, 10, 250, 30);
WC_L_INFO_1.setFont(new Font("한컴 고딕", Font.BOLD, 15));
WC_L_INFO_2 = new JLabel("결과 창");
WC_L_INFO_2.setBounds(10, 210, 250, 30);
WC_L_INFO_2.setFont(new Font("한컴 고딕", Font.BOLD, 15));
WC_L_INFO_3 = new JLabel("변경할 문자 입력");
WC_L_INFO_3.setBounds(550, 32, 171, 15);
WC_L_INFO_3.setFont(new Font("한컴 고딕", Font.BOLD, 15));
WC_L_TF_3 = new JTextField();
WC_L_TF_3.setBounds(543, 59, 221, 32);
WC_L_TF_3.setColumns(10);
WC_L_TF_4 = new JTextField();
WC_L_TF_4.setBounds(543, 141, 221, 32);
WC_L_TF_4.setColumns(10);
JLabel WC_L_INFO_4 = new JLabel("변경되려는 문자열");
WC_L_INFO_4.setBounds(550, 114, 171, 15);
WC_L_INFO_4.setFont(new Font("한컴 고딕", Font.BOLD, 15));
WC_L_INFO_RED = new JLabel("입력 할 문자열을 넣고 변경실행을 클릭하세요. ");
WC_L_INFO_RED.setForeground(new Color(255, 0, 0));
WC_L_INFO_RED.setFont(new Font("HY헤드라인M", Font.PLAIN, 15));
WC_L_INFO_RED.setBounds(550, 200, 350, 30);
WC_L_BEFORE = new JLabel("변경전 길이 : ");
WC_L_BEFORE.setFont(new Font("굴림", Font.BOLD, 15));
WC_L_BEFORE.setBounds(550, 245, 350, 20);
WC_L_AFTER = new JLabel("변경후 길이 : ");
WC_L_AFTER.setFont(new Font("굴림", Font.BOLD, 15));
WC_L_AFTER.setBounds(550, 275, 350, 20);
WC_B_2_RESET = new JButton("초기화");
WC_B_2_RESET.setFont(new Font("한컴 고딕", Font.PLAIN, 30));
WC_B_2_RESET.setBounds(777, 32, 150, 150);
JLabel lblNewLabel_3 = new JLabel("");
lblNewLabel_3.setBounds(140, 75, 615, 415);
lblNewLabel_3.setIcon(new ImageIcon(FilePath + "vogue1.jpg"));
contentPane.add(lblNewLabel_3);
panel_1.add(WC_L_SP_1);
panel_1.add(WC_L_SP_2);
panel_1.add(WC_L_TF_3);
panel_1.add(WC_L_TF_4);
panel_1.add(WC_L_INFO_1);
panel_1.add(WC_L_INFO_2);
panel_1.add(WC_L_INFO_3);
panel_1.add(WC_L_INFO_4);
panel_1.add(WC_L_INFO_RED);
panel_1.add(WC_L_BEFORE);
panel_1.add(WC_L_AFTER);
panel_1.add(WC_B_1_CHG_ALL);
panel_1.add(WC_B_2_RESET);
panel_1.setLayout(null);
///////////
// 메인버튼2
////////////
JButton m_WordCngBtn_1 = new JButton("계산기");
m_WordCngBtn_1.setFont(new Font("맑은 고딕", Font.BOLD, 20));
m_WordCngBtn_1.setBounds(788, 69, 214, 70);
contentPane.add(m_WordCngBtn_1);
panel_1.setVisible(true);
setLocationRelativeTo(null);
m_WordCngBtn_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
//////////////
// <WC Event>
//////////////
lblNewLabel_3.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
String[] happy = { "해삐", "해피", "해삐", "해피" };
int choice = JOptionPane.showOptionDialog(null, "행복하시나요?", "알유해피?", 0, 0, null, happy, happy[3]);
}
});
m_WordCngBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
m_WordCngBtn.setText("글자 변경 선택됨");
CK_WordCng += 1;
if (CK_WordCng > 1) {
CK_WordCng = 0;
m_WordCngBtn.setText("글자 변경");
panel_1.setVisible(true);
}
if (CK_WordCng == 1) {
panel_1.setVisible(false);
}
}
});
WC_B_2_RESET.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
WC_L_TF_1.setText("");
WC_L_TF_2.setText("");
WC_L_TF_3.setText("");
WC_L_TF_4.setText("");
WC_L_INFO_RED.setText("입력 할 문자열을 넣고 변경실행을 클릭하세요. ");
WC_L_BEFORE.setText("변경전 길이 : ");
WC_L_AFTER.setText("변경후 길이 : ");
}
});
WC_B_1_CHG_ALL.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String input_Text = WC_L_TF_1.getText();
input_Text = input_Text.replaceAll(WC_L_TF_3.getText(), WC_L_TF_4.getText());
WC_L_TF_2.setText(input_Text);
WC_L_BEFORE.setText("변경전 길이 : " + WC_L_TF_1.getText().length() + " 자 ");
WC_L_AFTER.setText("변경후 길이 : " + WC_L_TF_2.getText().length() + " 자 ");
WC_L_INFO_RED.setText("변경되었습니다 ..!! ");
}
});
}
}
심심해서 만들어 봤다 ^_^ 그럼 20000
'Full Stack Course 풀스택과정 > JAVA 자바' 카테고리의 다른 글
자바 GUI - 일기장 만들기 (MYSQL 연동) (0) | 2024.01.17 |
---|---|
JAVA - 자바 GUI로 엑셀(Excel) 연결해서 수정 저장하기 (0) | 2024.01.12 |
JAVA - 자바 GUI 프로젝트 합치기 (0) | 2024.01.12 |
JAVA - 자바 GUI 로 MYSQL 연동하기 (2) | 2024.01.10 |
JAVA - 자바 GUI 로 계산기 만들기 (1) | 2024.01.04 |