TabbedPaneExample
public class TabbedPaneExample {
JFrame f;
TabbedPaneExample(){
f= new JFrame();
JTextArea ta = new JTextArea(200,200);
JPanel p1 = new JPanel();
p1.add(ta);
JPanel p2= new JPanel();
JPanel p3= new JPanel();
JTabbedPane tp = new JTabbedPane();
tp.setBounds(50,50,200,200);
tp.add("main",p1);
tp.add("visit",p2);
tp.add("help",p3);
f.add(tp);
f.setSize(400,400);
f.setLayout(null);
f.setVisible(true);
}
public static void main(String[] args){
new TabbedPaneExample();
}
}
JSlider
import javax.swing.*;
public class SliderExample extends JFrame {
SliderExample(){
JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 50, 25);
slider.setMinorTickSpacing(2);
slider.setMajorTickSpacing(10);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
slider.setPaintTrack(true);
JPanel panel = new JPanel();
panel.add(slider);
add(panel);
}
public static void main(String[] args){
SliderExample frame = new SliderExample();
frame.pack();
frame.setVisible(true);
}
}
JSpinner
- 단일 라인 입력 필드 객체
- 유저가 정렬된 순서로부터 객체 값의 번호를 선택할 수 있다.
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class SpinnerExample {
public static void main(String[] args) {
JFrame f = new JFrame("Spinner Example");
final JLabel label = new JLabel();
label.setHorizontalAlignment(JLabel.CENTER);
label.setSize(250, 100);
SpinnerModel value = new SpinnerNumberModel(5, 0, 10, 1);
JSpinner spiner = new JSpinner(value);
spiner.setBounds(100, 100, 50, 30);
f.add(spiner);
f.add(label);
f.setSize(300, 300);
f.setLayout(null);
f.setVisible(true);
spiner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
label.setText("Value : " + ((JSpinner) e.getSource()).getValue());
}
});
}
}
JDialog
- JDialog 컨트롤은 사용자로부터 어떤 형태의 입력을 받는 데 사용되는 테두리와 제목이 있는 최상위 창을 나타냄
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DialogExample {
private static JDialog d;
DialogExample() {
JFrame f= new JFrame();
d = new JDialog(f , "Dialog Example", true);
d.setLayout( new FlowLayout() );
JButton b = new JButton ("OK");
b.addActionListener ( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
DialogExample.d.setVisible(false);
}
});
d.add( new JLabel ("Click button to continue."));
d.add(b);
d.setSize(300,300);
d.setVisible(true);
}
public static void main(String args[])
{
new DialogExample();
}
}
JPanel
- 가장 단순한 컴포넌트
- 어플리케이션이 어느 다른 컴포넌트를 부착시킬 수 있는 공간을 제공해줌
import javax.swing.*;
import java.awt.*;
public class PanelExample extends JPanel {
PanelExample(){
JFrame jFrame = new JFrame("Panel Example");
setBounds(40,80,200,200);
setBackground(Color.gray);
JButton b1 = new JButton("Button 1");
b1.setBounds(50,100,80,30);
b1.setBackground(Color.yellow);
JButton b2 = new JButton("Button 2");
b1.setBounds(100,100,80,30);
b1.setBackground(Color.green);
add(b1); add(b2);
jFrame.add(this);
jFrame.setSize(400,400);
jFrame.setLayout(null);
jFrame.setVisible(true);
}
public static void main(String[] args){
new PanelExample();
}
}
JFileChooser
- 유저가 파일을 선택할 수 있는 다이얼로그 윈도우 폼을 보여주는 객체
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class FileChooserExample extends JFrame implements ActionListener {
JMenuBar mb;
JMenu file;
JMenuItem open;
JTextArea ta;
FileChooserExample(){
open = new JMenuItem("Open file");
open.addActionListener(this);
file = new JMenu("File");
file.add(open);
mb = new JMenuBar();
mb.setBounds(0,0,800,20);
mb.add(file);
ta= new JTextArea(800,800);
ta.setBounds(0,20,800,800);
add(mb);
add(ta);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()== open){
JFileChooser fc = new JFileChooser();
int i = fc.showOpenDialog(this);
if(i == JFileChooser.APPROVE_OPTION){
File f = fc.getSelectedFile();
String filePath = f.getPath();
try{
BufferedReader br = new BufferedReader(new FileReader(filePath));
String s1 = "", s2="";
while((s1=br.readLine())!=null){
s2+=s1+"\n";
}
ta.setText(s2);
br.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}
public static void main(String[] args){
FileChooserExample om = new FileChooserExample();
om.setSize(500,500);
om.setLayout(null);
om.setVisible(true);
om.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JFrame;
import javax.swing.JToggleButton;
public class JToggleButtonExample extends JFrame implements ItemListener {
public static void main(String[] args){
new JToggleButtonExample();
}
private JToggleButton button;
JToggleButtonExample(){
setTitle("JToggleButton with ItemListener Example");
setLayout(new FlowLayout());
setJToggleButton();
setAction();
setSize(200,200);
setVisible(true);
}
private void setJToggleButton(){
button = new JToggleButton("ON");
add(button);
}
private void setAction(){
button.addItemListener(this);
}
@Override
public void itemStateChanged(ItemEvent e) {
if(button.isSelected()){
button.setText("OFF");
}
else{
button.setText("ON");
}
}
}
- JToolBar 컨테이너는 다른 컴포턴트를 구룹짓게 도와줌
- JToolBar는 일반적으로 사용되는 작업이나 컨트롤을 표시하는 데 유용한 구성 요소를 제공
import javax.swing.*;
import java.awt.*;
public class JToolBarExample {
public static void main(final String args[]){
JFrame myFrame = new JFrame("JToolBar Exampe");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JToolBar toolBar = new JToolBar();
toolBar.setRollover(true);
JButton button = new JButton("File");
toolBar.add(button);
toolBar.addSeparator();
toolBar.add(new JButton("Edit"));
toolBar.add(new JComboBox(new String[] {"Opt-1","Opt-2", "Opt-3","Opt-4"}));
Container contentPane = myFrame.getContentPane();
contentPane.add(toolBar, BorderLayout.NORTH);
JTextArea textArea = new JTextArea(500,500);
JScrollPane jScrollPane= new JScrollPane(textArea);
contentPane.add(jScrollPane,BorderLayout.EAST);
myFrame.setSize(450,250);
myFrame.setVisible(true);
}
}
JFrame
- 메인 윈도우 같이 작동함
- Frame과 달리, 윈도우를 숨키거나 닫는 옵션을 제공함 (using setDefaultCloseOperation(int) method)
import javax.swing.*;
import java.awt.*;
public class JFrameExample {
public static void main (String s[]){
JFrame frame = new JFrame("JFrame Example");
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JLabel label = new JLabel("JFrame By Example");
JButton button = new JButton("Button");
panel.add(label);
panel.add(button);
frame.add(panel);
frame.setSize(400,400 );
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
JComponent
- JComponent 클래스는 최상위 컨테이너를 제외한 모든 Swing 구성 요소의 기본 클래스
- J 로 시작하는 스윙 구성 요소는 JComponent 클래스의 하위 항목
- JFrame과 JDialog는 최상위 컨테이너의 자식이기 때문에 JComponent 클래스를 상속하지 않습니다
import javax.swing.*;
import java.awt.*;
class MyJComponent extends JComponent{
public void paint(Graphics g){
g.setColor(Color.green);
g.fillRect(30,30,100,100);
}
}
public class JComponentExample {
public static void main(String args[]){
MyJComponent com = new MyJComponent();
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame jFrame =new JFrame("JComponent Example");
jFrame.setSize(300,200);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.add(com);
jFrame.setVisible(true);
}
}