2016-01-10 2 views
2

Просто экспериментировал с попыткой создать простое приложение в Java swing. Всякий раз, когда я пытаюсь использовать построитель GUI, который генерирует код для вас, я, кажется, не могу редактировать текстовое поле при запуске программы. Я установил поле для редактирования, но я все еще сталкиваюсь с проблемами. Код ниже:Невозможно отредактировать JTextField - Java Swing

import java.sql.DriverManager; 
import java.sql.Connection; 
import java.sql.SQLException; 
import java.awt.*; 
import javax.swing.*; 

public class CarRentalGUI extends javax.swing.JFrame { 

public CarRentalGUI() { 
    initComponents(); 
    getContentPane().setBackground(new Color(230,230,230)); 
} 

@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    jComboBox2 = new javax.swing.JComboBox(); 
    jLabel1 = new javax.swing.JLabel(); 
    jLabel2 = new javax.swing.JLabel(); 
    jComboBox1 = new javax.swing.JComboBox(); 
    jRadioButton1 = new javax.swing.JRadioButton(); 
    jRadioButton2 = new javax.swing.JRadioButton(); 
    jLabel3 = new javax.swing.JLabel(); 
    jTextField1 = new JTextField("Text Here", 10); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
    setTitle("CarRental"); 
    setAutoRequestFocus(false); 
    setBackground(new java.awt.Color(0, 0, 0)); 
    setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); 
    setFocusableWindowState(false); 
    setForeground(java.awt.Color.white); 
    setName("frame"); // NOI18N 

    jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Volkswagen Golf", "Ford Fiesta", "Citroen C2", "Vauxhall Insignia", "Peugeot Bipper" })); 
    jComboBox2.setName(""); // NOI18N 

    jLabel1.setText("Select Car:"); 
    jLabel1.setToolTipText(""); 
    jLabel1.setName(""); // NOI18N 

    jLabel2.setText("Duration: "); 

    jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14" })); 

    jRadioButton1.setText("NUS Student Card"); 

    jRadioButton2.setText("Employee"); 

    jLabel3.setText("Discount Code:"); 

    jTextField1.setText("jTextField1"); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(42, 42, 42) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
       .addComponent(jLabel1) 
       .addComponent(jLabel2) 
       .addComponent(jLabel3)) 
      .addGap(18, 18, 18) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addComponent(jRadioButton2) 
       .addComponent(jRadioButton1) 
       .addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addContainerGap(548, Short.MAX_VALUE)) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(119, 119, 119) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addComponent(jLabel1)) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(jLabel2) 
       .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addGap(18, 18, 18) 
      .addComponent(jRadioButton1) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
      .addComponent(jRadioButton2) 
      .addGap(71, 71, 71) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
       .addComponent(jLabel3) 
       .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
      .addContainerGap(124, Short.MAX_VALUE)) 
    ); 

    jTextField1.setEditable(true); 

    getAccessibleContext().setAccessibleDescription(""); 

    pack(); 
}// </editor-fold>       


public static void main(String args[]) { 
    /* Set the Nimbus look and feel */ 
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
    * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    */ 
    try { 
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Nimbus".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) { 
     java.util.logging.Logger.getLogger(CarRentalGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (InstantiationException ex) { 
     java.util.logging.Logger.getLogger(CarRentalGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (IllegalAccessException ex) { 
     java.util.logging.Logger.getLogger(CarRentalGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
     java.util.logging.Logger.getLogger(CarRentalGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } 
    //</editor-fold> 
    Connection conn; 
    String url = "jdbc:mysql://localhost:3306/car_rental"; 
    String username = "root"; 
    String password = "password"; 

    try 
    { 
     conn = DriverManager.getConnection(url, username, password); 
     System.out.print("Connected Successfully\n"); 

    } catch (SQLException ex) { 
     System.out.print(ex.toString()); 
    } 

    /* Create and display the form */ 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new CarRentalGUI().setVisible(true); 
     } 
    }); 
} 



// Variables declaration - do not modify      
private javax.swing.JComboBox jComboBox1; 
private javax.swing.JComboBox jComboBox2; 
private javax.swing.JLabel jLabel1; 
private javax.swing.JLabel jLabel2; 
private javax.swing.JLabel jLabel3; 
private javax.swing.JRadioButton jRadioButton1; 
private javax.swing.JRadioButton jRadioButton2; 
private javax.swing.JTextField jTextField1; 
// End of variables declaration     

} 

Я хотел бы попробовать и попытаться рукописными элементы свинга Java в коде, но у меня мало опыт Java и не буду знать, как отредактировать макет. Есть ли причина, по которой я не могу редактировать поле «JTextField1»?

Спасибо,

Aces

+0

Удалите 'setFocusableWindowState (false);', это предотвратит в кадре из-за возможности получить фокус на клавиатуре. – MadProgrammer

ответ

3

Удалить setFocusableWindowState(false);, это предотвратить кадр из смог получить фокус клавиатуры

От JavaDocs

Наборы могут ли это Window стать сфокусированный Window, если он соответствует требованиям , изложенным в isFocusableWindow. Если это Window focusable Window состояние установлено на false, то isFocusableWindow будет false. Если этого Window «S фокусируемый Window состояние устанавливается в true, то isFocusableWindow может возвращать истинным или ложным в зависимости от других требований, которые должны быть выполнены для того, чтобы в Window быть фокусирования.

Установки состояния в Window «ы фокусируемости к false является стандартным механизмом для приложения, чтобы определить, к AWT Window , которая будет использоваться в качестве плавучей палитры или панели инструментов, и, таким образом, должна быть не фокусируемый Window. Настройка состояния фокусируемости на видимом Окно может иметь задержку на некоторых платформах - фактическое изменение может произойти только тогда, когда окно становится скрытым, а затем снова видимым. Чтобы обеспечить согласованное поведение на разных платформах, установите состояние фокусировки Window , когда Window невидимо, а затем покажите его.

И isFocusableWindow

Возвращает ли это Window может стать сфокусированный Window, то есть ли это Window или любой из его подкомпонентов может стать владельцем фокуса. Для Frame или Dialog для фокусировки его фокусное состояние Window должно быть установлено на true. Для Window, который не является Frame или Dialog быть фокусируемыми, его состояние фокусируемого Окна должно быть установлено true, его ближайшим владеющим Frame или Dialog должен быть показан на экране, и он должен содержать, по крайней мере, один Component в его обходе фокуса цикла , Если какое-либо из этих условий не выполняется, то ни этот Window, ни любой из его подкомпонентов не могут стать владельцем фокуса.

+0

Большое спасибо. –

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