2014-05-01 62 views
0
import javax.swing.BoxLayout; 
import javax.swing.JApplet; 
import javax.swing.JButton; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 

import java.awt.Dimension; 
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 
import java.awt.Insets; 

public class LoginApplet extends JApplet { /** 
* 
*/ 
private static final long serialVersionUID = 1L; 

JLabel titlePage; 
JLabel[] txt; 
JTextField[] jtf; 
JButton accept, decline; 
JPanel jp1, jp2, jp3; 


public void init(){ 
    setSize(400,400); 

    JPanel content = (JPanel)getContentPane(); 
    GridBagConstraints firstCol = new GridBagConstraints(); 
    firstCol.weightx = 1.0; 
    firstCol.anchor = GridBagConstraints.WEST; 
    firstCol.insets = new Insets(5, 20, 5, 5); 
    GridBagConstraints lastCol = new GridBagConstraints(); 
    lastCol.gridwidth = GridBagConstraints.REMAINDER; 
    lastCol.weightx = 1.0; 
    lastCol.fill = GridBagConstraints.HORIZONTAL; 
    lastCol.insets = new Insets(5, 5, 5, 20); 

    String[] labeltxt = {"Username", "Password"}; 
    titlePage = new JLabel("Create New Account"); 
    txt = new JLabel[2]; 
    jtf = new JTextField[2]; 
    accept = new JButton("Create"); 
    decline = new JButton("Decline"); 

    jp1 = new JPanel(); 
    jp2 = new JPanel(new GridBagLayout()); 
    jp3 = new JPanel(); 
    for(int i=0; i<labeltxt.length; i++) { 
     txt[i] = new JLabel(); 
     txt[i].setText(labeltxt[i]); 
     jp2.add(txt[i], firstCol); 
     jtf[i] = new JTextField(); 
     jtf[i].setPreferredSize(new Dimension(300, 20)); 
     jp2.add(jtf[i], lastCol); 
     } 
     jp1.add(titlePage); 
     jp3.add(accept); 
     jp3.add(decline); 
     content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS)); 
     content.add(jp1); 
     content.add(jp2); 
     content.add(jp3); 

    } 

public void setVisible(boolean b) { 
    // TODO Auto-generated method stub 

} 


} 

嗨,大家好..我已經發布了這個代碼是從類LoginApplet其被通過的actionPerformed從另一個類叫....我沒有問題,將其設置爲JFrame(此作業的標題在JApplet中)。現在,當我將它轉換爲JApplet問題出現時。我對JApplet不熟悉,並且運行時代碼顯示爲空白有什麼問題嗎?我JApplet的編譯,但它出現在applet查看空白

+0

爲什麼代碼的小程序?如果這是由於規格。由老師,請參考[爲什麼CS老師應該停止教Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/)。 –

+0

我不得不將jframe更改爲japplet以遵循這個標題..... – hs2345

回答

1

擺脫

public void setVisible(boolean b) { 
    // TODO Auto-generated method stub 
} 

它防止小程序從思維纔看得到......

+0

我得到了這個擺脫。另一個問題仍然存在,因爲我不能通過從不同的類中單擊JButton來創建此類...對於JApplet加載不同的類是不同的嗎?我做它的工作方式是JFrame .. – hs2345

+0

是的,通常你只有一個小程序,小程序應該避免(並可以限制)創建其他窗口。相反,將你的邏輯移動到'JPanel's並手動交換它們(使用add/remove)或使用'CardLayout'在它們之間移動 – MadProgrammer

+0

我使用jtextfield和jlabel的setVisible和setText方法來改變屏幕到一個新的屏幕而不需要加載新的japplet類。謝謝 – hs2345