2013-12-03 2 views
0

Я разрабатываю приложение Java Swing. В моем приложении я использовал JPanels и поместил белый фон на задний план, но он не работает должным образом. Не могли бы догадаться, почему? И та же проблема на границе JPanel. Я пробовал несколько раз, но не смог. Эван, я развиваюсь в netbeans, это не работает. Вы можете мне помочь?Цвет не применяется в JPanel?

public class RegistrationForm extends JFrame { 


    public RegistrationForm() { 

     initComponents(); 
     pack(); 
     setLocationRelativeTo(null); 
     this.setVisible(true); 

    } 

    private void initComponents() { 

     setUndecorated(true); 
     jCheckBoxMenuItem1 = new JCheckBoxMenuItem(); 
     jPanel1 = new JPanel(); 
     headingLabel = new javax.swing.JLabel(); 
     conditionTextBox = new javax.swing.JCheckBox(); 
     joinButton = new javax.swing.JButton(); 
     firstNameField = new PlaceholderTextField(); 
     emailField = new PlaceholderTextField(); 
     userNameField = new PlaceholderTextField(); 
     passWordField = new PlaceholderPasswordField(); 
     confirmPassWordField = new PlaceholderPasswordField(); 
     jButton1 = new javax.swing.JButton(); 





     jCheckBoxMenuItem1.setSelected(true); 
     jCheckBoxMenuItem1.setText("jCheckBoxMenuItem1"); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
     setBackground(new java.awt.Color(255, 255, 255)); 
     jPanel1.setBorder(BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 
     jPanel1.setBackground(Color.WHITE); 
     jPanel1.setLayout(new java.awt.GridBagLayout()); 

     headingLabel.setFont(new java.awt.Font("Tahoma", 1, 24)); 
     headingLabel.setText("Join Us Now"); 

     conditionTextBox.setFont(new java.awt.Font("Segoe UI", 0, 11)); 
     conditionTextBox.setText("I agree to the UAC system terms of service and regulations "); 


     joinButton.setFont(new java.awt.Font("Segoe UI", 0, 14)); 
     joinButton.setText("Join"); 
     joinButton.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       joinButtonActionPerformed(evt); 
      } 
     }); 

     firstNameField.setFont(new java.awt.Font("Segoe UI", 0, 18)); 


     emailField.setFont(new java.awt.Font("Segoe UI", 0, 18)); 


     userNameField.setFont(new java.awt.Font("Segoe UI", 0, 18)); 
     userNameField.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       userNameFieldActionPerformed(evt); 
      } 
     }); 

     passWordField.setFont(new java.awt.Font("Segoe UI", 0, 18)); 

     confirmPassWordField.setFont(new java.awt.Font("Segoe UI", 0, 18)); 


     jButton1.setActionCommand("closeRegistretion"); 

     //then adding components     


    // Variables declaration - do not modify      
    private javax.swing.JCheckBox conditionTextBox; 
    private PlaceholderPasswordField confirmPassWordField; 
    private PlaceholderTextField emailField; 
    private PlaceholderTextField firstNameField; 
    private javax.swing.JLabel headingLabel; 
    private javax.swing.JButton jButton1; 
    private javax.swing.JCheckBoxMenuItem jCheckBoxMenuItem1; 
    private javax.swing.JPanel jPanel1; 
    private javax.swing.JButton joinButton; 
    private PlaceholderPasswordField passWordField; 
    private PlaceholderTextField userNameField; 
    // End of variables declaration     
} 
+1

для лучшей помощи, прежде чем опубликовать [SSCCE] (http://sscce.org/), короткий, выполнимый, скомпилированный только с помощью JComponent, добавленного в JPanel внутри JFrame – mKorbel

+0

Как насчет setOpaque()? – StanislavL

+0

setOpaque() не работает тоже .. :( – CodeSac

ответ

1

Используйте этот код, В этом коде мы делаем панель с цветом фона: -

import java.awt.Color; 
import javax.swing.JPanel; 

public class NewClass1 extends javax.swing.JFrame 
{ 
    public NewClass1() {    
     setLayout(null); 
     JPanel panel=new JPanel(); 
     panel.setOpaque(true); 
     add(panel); 
     panel.setBackground(Color.red); 
     panel.setBounds(0,0,400,300); 
    }  

    public static void main(String args[]) { 

     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new NewClass1().setVisible(true); 
      } 
     }); 
    } 
} 
0

Я думаю, что вы забыли добавить JPanel ваших кадров pane.something контента, как

getContentPane().add(jPanel1); 
+0

нет его не работает и спасибо за информацию – CodeSac

+0

Странно, я не смог найти код, который добавляет вашу панель в рамку! Более того, вы вызвали метод setBackgrounColor() на кадр, а не панель. Вы приняли ответ от mKorble, который по существу делает setOpaque (true), о котором вы уже говорили, что не работает в вашем предыдущем комментарии! –

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