하여이 두 값을 & 분할을 추가하여 다음 계산 될 수있다, 왜 한 번에 모든 작업을 수행하지 사용자의 인내심을 테스트하는 대신 단일 대화 상자에서 시간을 절약 할 수 있습니까?
모든 필드를 JPanel
에 입력하고 JPanel
을 JOptionPane
에 추가하면 모든 정보를 하나의 대화 상자에 추가 할 수 있습니다. 코드 아래 좀 더 명확히 할 수
import java.awt.*;
import java.util.*;
import javax.swing.*;
public class AverageExample
{
private double[] marks;
private JTextField[] marksField;
private JLabel resultLabel;
public AverageExample()
{
marks = new double[3];
marksField = new JTextField[3];
marksField[0] = new JTextField(10);
marksField[1] = new JTextField(10);
marksField[2] = new JTextField(10);
}
private void displayGUI()
{
int selection = JOptionPane.showConfirmDialog(
null, getPanel(), "Input Form : "
, JOptionPane.OK_CANCEL_OPTION
, JOptionPane.PLAIN_MESSAGE);
if (selection == JOptionPane.OK_OPTION)
{
for (int i = 0; i < 3; i++)
{
marks[i] = Double.valueOf(marksField[i].getText());
}
Arrays.sort(marks);
double average = (marks[1] + marks[2])/2.0;
JOptionPane.showMessageDialog(null
, "Average is : " + Double.toString(average)
, "Average : "
, JOptionPane.PLAIN_MESSAGE);
}
else if (selection == JOptionPane.CANCEL_OPTION)
{
// Do something here.
}
}
private JPanel getPanel()
{
JPanel basePanel = new JPanel();
//basePanel.setLayout(new BorderLayout(5, 5));
basePanel.setOpaque(true);
basePanel.setBackground(Color.BLUE.darker());
JPanel centerPanel = new JPanel();
centerPanel.setLayout(new GridLayout(3, 2, 5, 5));
centerPanel.setBorder(
BorderFactory.createEmptyBorder(5, 5, 5, 5));
centerPanel.setOpaque(true);
centerPanel.setBackground(Color.WHITE);
JLabel mLabel1 = new JLabel("Enter Marks 1 : ");
JLabel mLabel2 = new JLabel("Enter Marks 2 : ");
JLabel mLabel3 = new JLabel("Enter Marks 3 : ");
centerPanel.add(mLabel1);
centerPanel.add(marksField[0]);
centerPanel.add(mLabel2);
centerPanel.add(marksField[1]);
centerPanel.add(mLabel3);
centerPanel.add(marksField[2]);
basePanel.add(centerPanel);
return basePanel;
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
new AverageExample().displayGUI();
}
});
}
}
참조 [이 끝을 (http://home.earthlink.net/~patricia_shanahan/beginner.html) 당신이 시작하는 -하지 않을 경우 해결책에, 다음에 특정 질문을하는 단계에 도달하기위한 최소한의 질문. –
이 질문/답변의 조회수 : 100,000 회 그리고 나는 그것을 오늘 사용했다. 그리고 너무 현지화되어 폐쇄되었습니다. 롤, 좋아. –
FYI -이 질문은 'Java swing input alert'의 조합을 검색 할 때 # 2 결과입니다 –