2015-01-11 2 views
0

Приложение Java GUI не отображает данные из класса PersonUI.java с данными макета im, используя MIGLayout в Netbeans 8.0. Все файлы, в которых проект не имеет ошибок, не отображают графический интерфейс. Может помочь мне отобразить MIGlayout.Приложение 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

Этот сайт не для того, чтобы выгрузить большое количество кода для отладки других. Если вы можете определить конкретный фрагмент кода, где существует ваша проблема, люди могут помочь. Прочитайте это [Как я как хороший вопрос] (http://stackoverflow.com/help/how-to-ask) – RiggsFolly

ответ

-1

Проверьте консоль на наличие каких-либо исключений. Попробуйте

new MigLayout("debug") 

, чтобы увидеть ваш макет в режиме debg. Вы также можете установить различные цвета фона в differen JPanels, чтобы посмотреть, какой размер у них есть.

+0

Это не ответ. OP говорит, что JFrame не отображается ... – smac89

Смежные вопросы