2011-12-05 31 views
0

大家好我的研究任務,我需要讓我的GUI程序轉換成一個小程序,但我似乎無法使其工作,我的繼承人的工作:GUI進行到小程序

公共類BookCentre擴展JFrame中實現的ActionListener {

private CardLayout cardManager; 
private JPanel deck; 
private JButton controls[]; 
private String names[] = { "Input", "Processing", "Display"}; 

public BookCentre(){ 
    super("CardLayout"); 
    Container container = getContentPane(); 
    deck = new JPanel(); 
    cardManager = new CardLayout(); 
    deck.setLayout(cardManager); 
    deck.add(card1Panel(), "c1"); 
    deck.add(card2Panel(), "c2"); 
    deck.add(card3Panel(), "c3"); 
    JPanel buttons = new JPanel(); 
    buttons.setLayout(new GridLayout(3, 1)); 
    controls = new JButton[ names.length ]; 
    for (int count = 0; count < controls.length; count++) { 
     controls[ count ] = new JButton(names[ count ]); 
     controls[ count ].addActionListener(this); 
     buttons.add(controls[ count ]); 
     container.add(buttons, BorderLayout.WEST); 
     container.add(deck, BorderLayout.CENTER); 
     setSize(700, 500); 
     setVisible(true);} 

}

public JPanel card1Panel(){ 
    JPanel card1 = new JPanel(); 
card1.setLayout(null); 
     Insets insets = card1.getInsets(); 
     card1.setSize(600, 300); 

     JLabel label1 = new JLabel("Enter Customer Information"); 
Dimension size1 = label1.getPreferredSize(); 
label1.setBounds(230, 5, size1.width, size1.height); 

    JLabel label1a = new JLabel("Customer Name:"); 
Dimension size1a = label1a.getPreferredSize(); 
label1a.setBounds(1, 65, size1a.width, size1a.height); 

    JTextField userinput = new JTextField(""); 
Dimension size1b = label1a.getPreferredSize(); 
userinput.setBounds(265, 65, size1b.width, size1b.height); 
String text = userinput.getText(); 

JLabel label1b = new JLabel("Choose exactly three books: use CTRL Or SHIFT"); 
Dimension size1c = label1b.getPreferredSize(); 
label1b.setBounds(1, 110, size1c.width, size1c.height); 

String[] selection = {"Deitel-Java How to Program", "Horstmann-Big Java", "Lewis-Software Solutions", "Staugaard-Java for IS", "Sun-Core Java", "Hamilton-JDBC", "Jackson-Java By Example", "Riley-The Object of Java", "Geary-Graphic Java", "Santry-Advanced Java2", "Bishop-Java Gently", "Wigglesworth-Advanced Java", "Liang-Intro to Java", "Lambert-Java"}; 
JList books = new JList(selection); 
books.setVisibleRowCount(5); 
books.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 
Dimension size1d = books.getPreferredSize(); 
books.setBounds(230, 150, size1d.width, size1d.height); 
add(new JScrollPane (books)); 

JButton submit = new JButton("Submit"); 
Dimension size1e = submit.getPreferredSize(); 
submit.setBounds(100, 425, 400, size1e.height); 



    card1.add(submit); 
    card1.add(books); 
    card1.add(userinput); 
    card1.add(label1); 
    card1.add(label1a); 
    card1.add(label1b); 

return card1; 

}

public JPanel card2Panel(){ 
    JLabel label2 = new JLabel("Processing", SwingConstants.CENTER); 
    JPanel card2 = new JPanel(); 
    card2.add(label2); 
    return card2; 

}

public JPanel card3Panel(){ 
    JLabel label3 = new JLabel("card three"); 
    JPanel card3 = new JPanel(); 
    card3.setLayout(new BorderLayout()); 
    card3.add(new JButton("North"), BorderLayout.NORTH); 
    card3.add(new JButton("West"), BorderLayout.WEST); 
    card3.add(new JButton("East"), BorderLayout.EAST); 
    card3.add(new JButton("South"), BorderLayout.SOUTH); 
    card3.add(label3, BorderLayout.CENTER); 
    return card3; 

}

public void actionPerformed(ActionEvent event) { 




    if (event.getSource() == controls[ 0 ])  
     cardManager.first(deck); 

    else if (event.getSource() == controls[ 1 ])  
     cardManager.show(deck, "c2"); 

    else if (event.getSource() == controls[ 2 ]) 
     cardManager.last(deck);   

}

public static void main(String args[]) { 
    BookCentre cardDeckDemo = new BookCentre(); 
    cardDeckDemo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

} }

爲線:

public class BookCentre extends JFrame implements ActionListener { 

我試圖與「小程序」代替「的JFrame」,但我開始在我的代碼讓許多錯誤。

+1

請注意縮進代碼(使用邏輯和一致的方法)。我發現那個爛攤子是不可讀的。至於GUI,更好的選擇可能不是做任何轉換,而是啓動工作(可能是基於JFrame的)應用程序。從一個鏈接使用[Java Web Start](http://stackoverflow.com/tags/java-web-start/info)。 –

+0

*「我嘗試用」Applet「替換」JFrame「,但是我開始在我的代碼中出現大量錯誤。」* 1)您確實意識到Swing提供了一個'JApplet',對吧? 2)當你不復制/粘貼到帖子中時,你如何期望任何人解決**'錯誤'中的任何錯誤? –

回答

0

電解金屬錳...問題是還不是很清楚:秒,但這裏有一些提示

  • A)與JApplet的更換JFrame的
  • B)與applet的init替代的主要方法(){}方法
  • C)編制項目
  • d)編寫JNLP啓動它
  • E)編寫正確的HTML發射

...如果它沒有幫助,請向我們展示在編譯或運行期間拋出的堆棧跟蹤,因爲目前問題確實包含較少的問題細節