2012-03-02 3 views
1

Как я могу добавить дополнительные контейнеры в свою Jframe? Heres моя строка кода, я хотел бы сделать часы в одном окне, которое содержит другие часы в стороне того же JFrame, Heres мой код:Добавление большего количества контейнеров в jframe

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.util.Calendar; 
public class CopyOftheclock { 
public static void main(String[] args) { 
    JFrame clock = new TextClockWindow(); 
    clock.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    clock.setVisible(true); 
    } 
} 


@SuppressWarnings("serial") 
class TextClockWindow extends JFrame { 
private JTextField timeField; 
    public TextClockWindow() { 
    timeField = new JTextField(7); 
    timeField.setFont(new Font("sansserif", Font.PLAIN, 48)); 

    Container content = this.getContentPane(); 
    content.setLayout(new FlowLayout()); 
    content.add(timeField); 

    this.setTitle("Norway"); 
    this.pack(); 
    javax.swing.Timer t = new javax.swing.Timer(1000, 
      new ActionListener() { 
       public void actionPerformed(ActionEvent e) { 
        String a = ""; 
        Calendar now = Calendar.getInstance(); 
        int h = now.get(Calendar.HOUR_OF_DAY); 
        if (h==24) 
        { 
         h=8; 
         a = "A.M"; 
        } 
        if (h==1) 
        { 
         h=9; 
         a = "A.M"; 
        } 
        if (h==2) 
        { 
         h=10; 
         a = "A.M"; 
        } 
        if (h==3) 
        { 
         h=11; 
         a = "A.M"; 
        } 
        if (h==4) 
        { 
         h=12; 
         a = "P.M"; 
        } 
        if (h==5) 
        { 
         h=1; 
         a = "P.M"; 
        } 
        if (h==6) 
        { 
         h=2; 
         a = "P.M"; 
        } 
        if (h==7) 
        { 
         h=3; 
         a = "P.M"; 
        } 
        if (h==8) 
        { 
         h=4; 
         a = "P.M"; 
        } 
        if (h==9) 
        { 
         h=5; 
         a = "P.M"; 
        } 
        if (h==10) 
        { 
         h=6; 
         a = "P.M"; 
        } 
        if (h==11) 
        { 
         h=7; 
         a = "P.M"; 
        } 
        if (h==12) 
        { 
         h=8; 
         a = "P.M"; 
        } 
        if (h==13) 
        { 
         h=9; 
         a = "P.M"; 
        } 
        if (h==14) 
        { 
         h=10; 
         a = "P.M"; 
        } 
        if (h==15) 
        { 
         h=11; 
         a = "P.M"; 
        } 
        if (h==16) 
        { 
         h=12; 
         a = "P.M"; 
        } 
        if (h==17) 
        { 
         h=1; 
         a = "A.M"; 
        } 
        if (h==18) 
        { 
         h=2; 
         a = "A.M"; 
        } 
        if (h==19) 
        { 
         h=3; 
         a = "A.M"; 
        } 
        if (h==20) 
        { 
         h=4; 
         a = "A.M"; 
        } 
        if (h==21) 
        { 
         h=5; 
         a = "A.M"; 
        } 
        if (h==22) 
        { 
         h=6; 
         a = "A.M"; 
        } 
        if (h==23) 
        { 
         h=7; 
         a = "A.M"; 
        } 
        int m = now.get(Calendar.MINUTE); 
        int s = now.get(Calendar.SECOND); 
        timeField.setText("" + h + ":" + m + ":" + s + " " + a); 
       } 

      }); 
    t.start(); 
    } 
} 

Если вы, ребята, могли бы помочь мне получить эту работу я бы действительно ценю это!

+0

heres picture to im im to make http://s1173.photobucket.com/albums/r597/jackiechanwins/?action=view¤t=clock.jpg –

+0

Используя метод 'add()'? –

+0

где бы я положил это в код? каждый контейнер будет иметь разные номера в нем. –

ответ

5

1) Для отображения нередактируемого текста используется JLabel, а не JTextField.

2) Для получения более точного кода воспользуйтесь методами SimpleDateFormat.

3) Использовать надлежащее LayoutManager; в вашем случае (может быть) GridLayout позволил бы всем JComponent иметь то же самое Dimension на экране.

4) Весь код, связанный с GUI в main public static void main(String[] args) {, должен быть обернут в invokeLater(); больше в Initial Threads.

5) Возможно для отдыха this thread could be useful.

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