멀티스레드 질문
푸르니
안녕하세요
환율계산하는 아주 간단한 swing application 입니다.
빈칸에 100 dollars 를 집어넣으면 일본 옌으로 환산되는건데
질문은 thread 를 이용하여 한번에 일본 옌 뿐만아니라 2개 이상의 환율을 계산하는 작업을 하고있습니다.
예를들어 옌, 원, 유로...로 자동적으로 환율계산이 되게
그런데 multi-thread 를 어떻게 적용시키는지 이해가 안되서...감을 못잡고 있습니다..ㅠㅠ
힌트좀 부탁드립니다.
제가 가지고있는 swing application 입니다.
컨버트 버튼을 눌르면 달라에서 옌으로 환산이 됩니다.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Converter {
JButton jbtnConvert;
JTextField jtxtValue;
JLabel jlbUSDollar;
JLabel jlbYen;
public static void main(String args[]) {
Converter cnvtr = new Converter();
cnvtr.display();
}
public void display() {
JFrame frame = new JFrame();
frame.setTitle(Currency Converter);
JPanel topPanel = new JPanel();
JPanel btmPanel = new JPanel();
jlbUSDollar = new JLabel(US Dollar);
jlbYen = new JLabel();
jlbYen.setPreferredSize(new Dimension(70,10));
jtxtValue = new JTextField();
jtxtValue.setPreferredSize(new Dimension(50,20));
jbtnConvert = new JButton(Convert);
topPanel.add(jtxtValue);
topPanel.add(jlbUSDollar);
frame.getContentPane().add(BorderLayout.NORTH,topPanel);
btmPanel.add(jbtnConvert);
btmPanel.add(jlbYen);
frame.getContentPane().add(BorderLayout.SOUTH, btmPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(250, 100);
frame.setVisible(true);
jbtnConvert.addActionListener(new CustomButtonListener());
}
class CustomButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Double dblDolValue = new Double(jtxtValue.getText());
jlbYen.setText((dblDolValue.doubleValue() * 79) + Yen);
}
}
}
-
보단
지금 리스너 안에서 값을 계산하고 있으신데요.. 거기서 \값을 계산하는 스레드를 실행\ 하시면 됩니다. 그 스레드는 계산이 모두 끝났을 경우에는 화면에 표시하게 jlbYen.setText 같이 지정하시면 될거 같네요.