2011-11-28 53 views
2

我目前正在JFrame上做一個小遊戲(搖滾,紙張,剪刀),它工作的很好!陣列之間的相互作用(Java新手)

唯一的問題是,我無法讓我的歡迎屏幕上的文本和按鈕以我想要的方式「排隊」。

我已經做了JLabels和字體的兩個數組,我不知道如何使他們...通知eatchother。

JLabel [] labels = {(new JLabel("*****VÄLKOMMEN TILL MITT SPEL!*****")),new JLabel("Reglerna är enkla: "),new JLabel(" Du tävlar mot datorn i helt vanlig sten, sax, påse."),new JLabel("Du väljer ett drag med hjälp av knapparna."),new JLabel("Datorn slumpgenererar mellan de tre alternativen."),new JLabel("Först till den angivna poängen vinner!"),new JLabel("REDO ATT STARTA?")}; 

Font [] Typsnitt = {(new Font("Serif", Font.PLAIN, 24)),(new Font("Calibri", Font.PLAIN, 15)),(new Font("Calibri", Font.PLAIN, 15)),(new Font("Calibri", Font.PLAIN, 15)),(new Font("Calibri", Font.PLAIN, 15)),(new Font("Calibri", Font.PLAIN, 15)),(new Font("Calibri", Font.PLAIN, 60))}; 

我有一個PIC但無法上傳的「美譽的原因」

這裏有一個歡迎窗口中的所有代碼。

import java.awt.event.*; 
import javax.swing.JButton; 
import java.awt.*; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JTextField; 
public class SimpeltSpel extends JFrame { 
    public static void main(String[] args) { 
    SimpeltSpel ny = new SimpeltSpel(); 
    ny.setVisible(true); 

    } 
    public JButton JaKnapp; 
    public JButton NejKnapp; 
    public JButton Sten; 
    public JButton Sax; 
    public JButton Påse; 
    { 
    JaKnapp = new JButton(); 
    JaKnapp.setText("  Ja  "); 

    NejKnapp = new JButton(); 
    NejKnapp.setText("  Nej  "); 
    } 

public SimpeltSpel() { 
    super("Sten,Sax,Påse!"); 
    this.setSize(new Dimension(500,500)); 
    this.setResizable(false); 
    setLayout(new FlowLayout()); 

    JLabel [] labels = {(new JLabel("*****VÄLKOMMEN TILL MITT SPEL!*****")),new JLabel("Reglerna är enkla: "),new JLabel(" Du tävlar mot datorn i helt vanlig sten, sax, påse."),new JLabel("Du väljer ett drag med hjälp av knapparna."),new JLabel("Datorn slumpgenererar mellan de tre alternativen."),new JLabel("Först till den angivna poängen vinner!"),new JLabel("REDO ATT STARTA?")}; 
    Font [] Typsnitt = {(new Font("Serif", Font.PLAIN, 24)),(new Font("Calibri", Font.PLAIN, 15)),(new Font("Calibri", Font.PLAIN, 15)),(new Font("Calibri", Font.PLAIN, 15)),(new Font("Calibri", Font.PLAIN, 15)),(new Font("Calibri", Font.PLAIN, 15)),(new Font("Calibri", Font.PLAIN, 60))}; 

    labels[0].setHorizontalTextPosition(JLabel.CENTER); 

    for (int i = 0; i<7; i++){ 
     getContentPane().add(labels[i]); 
    } 
    add(JaKnapp); 
    add(NejKnapp); 

    setLocationRelativeTo(null); 
    setVisible(true); 
    Knappar behandlare = new Knappar(); 
    JaKnapp.addActionListener(behandlare); 
    NejKnapp.addActionListener(behandlare); 

} 
private class Knappar implements ActionListener{ 
    public void actionPerformed (ActionEvent event){ 
    Object KnappTryck = event.getSource(); 
     if (KnappTryck == NejKnapp){ 
     System.exit(0); 
     } 
     else if (KnappTryck == JaKnapp) { 

      } 
     } 
    } 
} 
+0

您對字體數組不做任何操作。您想做什麼?爲每個標籤分配一個字體? –

+3

您應遵循Java約定,並用小寫的第一個字母來命名變量(英文,英文,西班牙文;-) – aioobe

回答

4

如果你想讓你的佈局看起來像一個網格使用GridLayout與2列。添加任何組件之前,設置這樣的:

setLayout(new GridLayout(0, 2)); 

從API文檔GridLayout

的網格佈局類是勾畫出一個容器的 組件矩形網格佈局管理器。


注意,你是今天使用FlowLayout其中規定了組件的定向流動,從API引用:

流佈局組件排列在定向流動,就像 段落中的文本行。流向由容器的componentOrientation屬性確定,並且可能是以下兩個值中的一個: