자바(Java) - MVC 패턴과 JList를 활용하여 프로그램 만들기

안녕하세요

이번 시간에는 MVC 패턴과 JList를 이용하여 간단한 예제 한번 만들어봅니다.


MVC 패턴에 대해서 저는 사실 처음 들었는데,

MVC란 Model, View, Controller의 약자로

Model은 데이터를 갖는 부분을 말하며,
View는 화면에 보여주는 부분(UI),
Controller는 Model과 View를 제어하는 부분

이렇게 세개로 분리하여 개발하는 것을 MVC 패턴을 사용했다고 합니다.


자 그럼 MVC 패턴과 JList를 활용한 예제 소스 코드를 올려봅니다.


public class JListDemo extends JFrame {

JList lst1, lst2; // View
String[] data={"Windows","Unix","Linux","Mac"}; //데이터=>자료구죠=>모델이 갖는다
DefaultListModel<String> model; // Model

//MVC의 장점은 리스트였던 형태를 다른 형태로 바꾸려고 하면, 소스를 전부 다 바꾸지 않고 껍데기만 바꾸면된다.
JComboBox combo1; // View
DefaultComboBoxModel<String> model2; // Model

JButton bt;
Vector<String> v=new Vector<String>();

public JListDemo() {
super("::JListDemo::");
Container cp=getContentPane();
cp.setLayout(new GridLayout(1,0));
lst1=new JList(); //View
cp.add(new JScrollPane(lst1));

model=new DefaultListModel<String>(); // Model이 data를 갖는다.
for(String item:data){
model.addElement(item);
}

//model과 view를 연결
lst1.setModel(model);

JPanel p = new JPanel();
cp.add(p);
combo1=new JComboBox(); // view
p.add(combo1);

model2=new DefaultComboBoxModel(data); // Model

//model과 view를 연결
combo1.setModel(model2);

bt=new JButton("대화참여");
p.add(bt);

bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String chatName=JOptionPane.showInputDialog(p,"대화명을 입력하세요");
setTitle(chatName);
//lst2에 사용자가 입력한 대화명이 올라가도록 해보세요
//벡터에 추가를 해야함
v.add(chatName); // 데이터 추가(보여지진 않음)
//v=> 모델이 가짐
lst2.updateUI(); // 갱신해야 데이터가 반영됨(리스트에 추가 된 데이터가 보여짐)
}
});

lst2=new JList(v);
//생성자에 데이터를 넘기면 알아서 ListModel에 해당 데이터를 전달한다.
cp.add(new JScrollPane(lst2));
lst2.setBorder(new LineBorder(Color.red,3));

setSize(500, 500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {

new JListDemo();

}

}

위의 소스 코드를 실행하면 아래와 같은 결과 화면이 나옵니다.





댓글 없음:

댓글 쓰기