2015-01-11 2 views
0

My Java GUI 응용 프로그램은 Netbeans 8.0에서 MIGLayout을 사용하여 레이아웃 세부 정보가있는 PersonUI.java 클래스의 데이터를 표시하지 않습니다. 프로젝트에있는 모든 파일에는 오류가 없으므로 GUI가 표시되지 않습니다. MIG 레이아웃을 표시하는 데 도움이 될 수 있습니다.Javs GUI 응용 프로그램 MIGLayout이 표시되지 않습니다.

package View; 

import Model.Person; 

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Random; 
import javax.swing.*; 
import javax.swing.border.EtchedBorder; 
import javax.swing.border.TitledBorder; 
import net.miginfocom.swing.MigLayout; 
/** 
/** 
* 
* @author Mbano 
*/import Controller.PersonBean; 
public class PersonUI extends JPanel { 
    private JTextField idField = new JTextField(10); 
    private JTextField fNameField = new JTextField(30); 

private JTextField mNameField, lNameField, emailField, phoneField; 

    private JButton createButton = new JButton("New..."); 
    private JButton updateButton, deleteButton, firstButton, prevButton, nextButton, 
    lastButton; 
private PersonBean bean = new PersonBean(); 

    public PersonUI() { 
     setBorder(new TitledBorder 
     (new EtchedBorder(),"Person Details")); 
     setLayout(new BorderLayout(5, 5)); 
     add(initFields(), BorderLayout.NORTH); 
     add(initButtons(), BorderLayout.CENTER); 
     setFieldData(bean.moveFirst()); 
    } 

    private JPanel initButtons() { 
     JPanel panel = new JPanel(); 
     panel.setLayout(new FlowLayout(FlowLayout.CENTER, 3, 3)); 
     panel.add(createButton); 
     createButton.addActionListener(new ButtonHandler()); 
     //... 
     panel.add(lastButton); 
     lastButton.addActionListener(new ButtonHandler()); 
     return panel; 
    } 

    private JPanel initFields() { 
     JPanel panel = new JPanel(); 
     panel.setLayout(new MigLayout()); 
     panel.add(new JLabel("ID"), "align label"); 
     panel.add(idField, "wrap"); 
     idField.setEnabled(false); 
     panel.add(new JLabel("First Name"), "align label"); 
     panel.add(fNameField, "wrap"); 
     //... 
     panel.add(new JLabel("Phone"), "align label"); 
     panel.add(phoneField, "wrap"); 
     return panel; 
    } 

    private Person getFieldData() { 
     Person p = new Person(); 
     p.setPersonId(Integer.parseInt(idField.getText())); 
     p.setFirstName(fNameField.getText()); 
     p.setMiddleName(mNameField.getText()); 
     p.setLastName(lNameField.getText()); 
     p.setEmail(emailField.getText()); 
     p.setPhone(phoneField.getText()); 
     return p; 
    } 

    private void setFieldData(Person p) { 
     idField.setText(String.valueOf(p.getPersonId())); 
     fNameField.setText(p.getFirstName()); 
     mNameField.setText(p.getMiddleName()); 
     lNameField.setText(p.getLastName()); 
     emailField.setText(p.getEmail()); 
     phoneField.setText(p.getPhone()); 
    } 

    private boolean isEmptyFieldData() { 
     return (fNameField.getText().trim().isEmpty() 
     && mNameField.getText().trim().isEmpty() 
     && lNameField.getText().trim().isEmpty() 
     && emailField.getText().trim().isEmpty() 
     && phoneField.getText().trim().isEmpty()); 
    } 

    private class ButtonHandler implements ActionListener { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
     Person p = getFieldData(); 
     switch (e.getActionCommand()) { 
     case "Save": 
      if (isEmptyFieldData()) { 
       JOptionPane.showMessageDialog(null, 
       "Cannot create an empty record"); 
       return; 
      } 
      if (bean.create(p) != null) 
       JOptionPane.showMessageDialog(null, 
       "New person created successfully."); 
       createButton.setText("New..."); 
       break; 
     case "New...": 
      p.setPersonId(new Random() 
      .nextInt(Integer.MAX_VALUE) + 1); 
      p.setFirstName(""); 
      p.setMiddleName(""); 
      p.setLastName(""); 
      p.setEmail(""); 
      p.setPhone(""); 
      setFieldData(p); 
      createButton.setText("Save"); 
      break; 
     case "Update": 
      if (isEmptyFieldData()) { 
       JOptionPane.showMessageDialog(null, 
       "Cannot update an empty record"); 
       return; 
      } 
      if (bean.update(p) != null) 
       JOptionPane.showMessageDialog(
       null,"Person with ID:" + String.valueOf(p.getPersonId() 
       + " is updated successfully")); 
       break; 
     case "Delete": 
      if (isEmptyFieldData()) { 
       JOptionPane.showMessageDialog(null, 
       "Cannot delete an empty record"); 
       return; 
      } 
      p = bean.getCurrent(); 
      bean.delete(); 
      JOptionPane.showMessageDialog(
       null,"Person with ID:" 
       + String.valueOf(p.getPersonId() 
       + " is deleted successfully")); 
       break; 
     case "First": 
      setFieldData(bean.moveFirst()); break; 
     case "Previous": 
      setFieldData(bean.movePrevious()); break; 
     case "Next": 
      setFieldData(bean.moveNext()); break; 
     case "Last": 
      setFieldData(bean.moveLast()); break; 
     default: 
      JOptionPane.showMessageDialog(null, 
      "invalid command"); 
     } 
     } 
    } 
} 


package View; 
import java.awt.FlowLayout; 
import javax.swing.JFrame; 
/** 
* 
* @author Mbano 
*/ 
public class AppMain { 
    public static void main(String[] args) { 
    JFrame f =new JFrame(); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER)); 
    f.getContentPane().add(new PersonUI()); 
     f.setSize(600, 280); 
     f.setVisible(true); 
} 
} 
+0

발생하는 문제를 포함하도록 제목을 변경하십시오. 또한 문제가 무엇이며 어떻게 재현 될 수 있는지 자세히 설명 할 수 있습니까? – Keppil

+0

이 사이트는 다른 사람들이 디버깅 할 수 있도록 많은 양의 코드를 덤프 할 수있는 사이트가 아닙니다. 문제가있는 특정 코드를 식별 할 수 있다면 사람들이 도울 수 있습니다. 이것을 읽으십시오 [좋은 질문으로 나는 어떻게합니까] – RiggsFolly

답변

-1

콘솔의 예외 사항을 확인하십시오. 디버그 모드에서 레이아웃을 보려면

new MigLayout("debug") 

을 사용해보십시오. 다른 크기의 JPanels에 다른 배경색을 설정하여 크기를 확인할 수도 있습니다.

+0

이것은 답변이 아닙니다. OP는 JFrame이 표시되지 않는다고 말하고 있습니다 ... – smac89

관련 문제