목차
- 자바 javac 명령어로 리눅스에서 자바 소스 코드 컴파일 예제 이전 포스팅 참고 학습
- 자바 AES 256 ECB 암호화 및 복호화 예제 이전 포스팅 참고 학습
- 자바 CharAt 문자열의 특정 위치에 있는 문자 가져오기 예제 이전 포스팅 참고 학습
- 자바 Swing 활용 트리 구조 리스트 박스, 경로 입력 Input Box, 버튼 UI 생성 예제
- 자바 Swing 활용 버튼을 누르면 Input box의 디렉토리 경로 트리 구조를 리스트 박스에 출력 예제
자바 javac 명령어로 리눅스에서 자바 소스 코드 컴파일 예제 이전 포스팅 참고 학습
리눅스 환경에서 자바 소스 코드를 컴파일하려면 'javac' 명령어를 사용합니다. 이전 포스팅에서 제공한 예제를 통해 해당 명령어의 사용법을 익히고, 자바 소스 코드를 컴파일하는 방법을 학습해보세요. 본 블로그의 자바 포스팅 예제들은 모두 리눅스 환경에서 javac 명령을 통해 컴파일한 후 실행하는 예제들입니다. 물론 리눅스 뿐만 아니라 윈도우 등의 환경에서도 실행 가능합니다. 만약 javac 명령으로 컴파일 및 실행하는 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.08.10 - [Linux] - [Linux/Java] 리눅스 우분투에서 java 컴파일 및 실행 예제(javac)
자바 AES 256 ECB 암호화 및 복호화 예제 이전 포스팅 참고 학습
자바에서 AES 256 ECB 암호화 및 복호화를 수행하려면 이전 포스팅에서 제공한 예제를 참고하세요. 이를 통해 데이터를 안전하게 암호화하고 해독하는 예제 코드 확인이 가능합니다. 암호화란 우리가 흔히 알아볼 수 있는 메세지를 알아 볼 수 없는 형태로 변환하는 것을 의미합니다. 다만, 다시 원래의 형태로 돌리는 것을 복호화라하며 풀 수 있는 키가 존재합니다. 만약 자바에서 AES 256 ECB 암호화 및 복호화 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.08.17 - [Java] - [Java/Linux] 자바 AES 256 CBC 모드 암복호화에 IV 사용 예제
자바 CharAt 문자열의 특정 위치에 있는 문자 가져오기 예제 이전 포스팅 참고 학습
자바에서 문자열의 특정 위치에 있는 문자를 가져오는 방법을 이전 포스팅에서 학습해보세요. 'charAt' 메서드를 활용하여 원하는 위치의 문자를 추출하는 방법을 확인하실 수 있습니다. char는 캐릭터의 약자이며 문자 1개를 표현하는 자료구조입니다. 따라서 긴 문자열 사이에 내가 원하는 위치에 존재하는 문자를 파악하기 위해선 charAt과 같은 함수를 활용하는 것이 좋습니다. 자바에서 문자열 중 특정 위치의 문자 값을 구할 필요가 있으시다면 아래 링크를 참고해주세요.
2023.08.11 - [Java] - [Java/Linux] 문자열의 특정 위치 문자 가져오기 예제(charAt)
자바 Swing 활용 트리 구조 리스트 박스, 경로 입력 Input Box, 버튼 UI 생성 예제
아래는 자바 Swing을 활용하여 트리 구조 리스트 박스, 경로 입력 Input Box, 버튼 UI를 생성하는 예제입니다. 다음 예제에서 버튼을 누르면 트리구조가 출력되도록 하겠습니다.
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
public class DirectoryTreeExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Directory Tree Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
JTree tree = new JTree();
DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Directory Tree");
model.setRoot(root);
JList<String> listBox = new JList<>();
DefaultListModel<String> listModel = new DefaultListModel<>();
listBox.setModel(listModel);
JTextField pathField = new JTextField(20);
JButton displayButton = new JButton("Display Directory");
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(tree, BorderLayout.WEST);
panel.add(listBox, BorderLayout.CENTER);
JPanel inputPanel = new JPanel();
inputPanel.add(pathField);
inputPanel.add(displayButton);
panel.add(inputPanel, BorderLayout.SOUTH);
frame.add(panel);
frame.setVisible(true);
}
}
자바 Swing 활용 버튼을 누르면 Input box의 디렉토리 경로 트리 구조를 리스트 박스에 출력 예제
아래는 자바 Swing을 활용하여 버튼을 누를 때 Input Box의 디렉토리 경로를 트리 구조로 나타내고 리스트 박스에 출력하는 예제입니다. 이처럼 하위 디렉토리들이 어떤 것들이 있는지 한 눈에 알아볼 수 있는 트리 구조 리스트 박스를 자바에서 생성할 수 있습니다.
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
public class DirectoryTreeExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Directory Tree Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
JTree tree = new JTree();
DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Directory Tree");
model.setRoot(root);
JList<String> listBox = new JList<>();
DefaultListModel<String> listModel = new DefaultListModel<>();
listBox.setModel(listModel);
JTextField pathField = new JTextField(20);
JButton displayButton = new JButton("Display Directory");
displayButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String path = pathField.getText();
File directory = new File(path);
if (directory.isDirectory()) {
listModel.clear();
File[] files = directory.listFiles();
for (File file : files) {
listModel.addElement(file.getName());
}
DefaultMutableTreeNode directoryNode = new DefaultMutableTreeNode(path);
root.add(directoryNode);
tree.updateUI();
} else {
JOptionPane.showMessageDialog(frame, "Invalid directory path!");
}
}
});
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(tree, BorderLayout.WEST);
panel.add(listBox, BorderLayout.CENTER);
JPanel inputPanel = new JPanel();
inputPanel.add(pathField);
inputPanel.add(displayButton);
panel.add(inputPanel, BorderLayout.SOUTH);
frame.add(panel);
frame.setVisible(true);
}
}