package com.Geme;
public class GameFrame extends javax.swing.JFrame {
public GameFrame() {
initComponents();
this.setLocationRelativeTo(null);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
letterPanel = new com.Geme.LetterPanel();
letterPanel1 = new com.Geme.LetterPanel();
letterPanel2 = new com.Geme.LetterPanel();
letterPanel3 = new com.Geme.LetterPanel();
letterPanel4 = new com.Geme.LetterPanel();
letterPanel5 = new com.Geme.LetterPanel();
letterPanel6 = new com.Geme.LetterPanel();
letterPanel7 = new com.Geme.LetterPanel();
letterPanel8 = new com.Geme.LetterPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("鎵撳瓧娓告垙");
javax.swing.GroupLayout letterPanelLayout = new javax.swing.GroupLayout(letterPanel);
letterPanel.setLayout(letterPanelLayout);
letterPanelLayout.setHorizontalGroup(
letterPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
letterPanelLayout.setVerticalGroup(
letterPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 280, Short.MAX_VALUE)
);
javax.swing.GroupLayout letterPanel1Layout = new javax.swing.GroupLayout(letterPanel1);
letterPanel1.setLayout(letterPanel1Layout);
letterPanel1Layout.setHorizontalGroup(
letterPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
letterPanel1Layout.setVerticalGroup(
letterPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 280, Short.MAX_VALUE)
);
javax.swing.GroupLayout letterPanel2Layout = new javax.swing.GroupLayout(letterPanel2);
letterPanel2.setLayout(letterPanel2Layout);
letterPanel2Layout.setHorizontalGroup(
letterPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
letterPanel2Layout.setVerticalGroup(
letterPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 280, Short.MAX_VALUE)
);
javax.swing.GroupLayout letterPanel3Layout = new javax.swing.GroupLayout(letterPanel3);
letterPanel3.setLayout(letterPanel3Layout);
letterPanel3Layout.setHorizontalGroup(
letterPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
letterPanel3Layout.setVerticalGroup(
letterPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 280, Short.MAX_VALUE)
);
javax.swing.GroupLayout letterPanel4Layout = new javax.swing.GroupLayout(letterPanel4);
letterPanel4.setLayout(letterPanel4Layout);
letterPanel4Layout.setHorizontalGroup(
letterPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
letterPanel4Layout.setVerticalGroup(
letterPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 280, Short.MAX_VALUE)
);
javax.swing.GroupLayout letterPanel5Layout = new javax.swing.GroupLayout(letterPanel5);
letterPanel5.setLayout(letterPanel5Layout);
letterPanel5Layout.setHorizontalGroup(
letterPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
letterPanel5Layout.setVerticalGroup(
letterPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 280, Short.MAX_VALUE)
);
javax.swing.GroupLayout letterPanel6Layout = new javax.swing.GroupLayout(letterPanel6);
letterPanel6.setLayout(letterPanel6Layout);
letterPanel6Layout.setHorizontalGroup(
letterPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
letterPanel6Layout.setVerticalGroup(
letterPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 280, Short.MAX_VALUE)
);
javax.swing.GroupLayout letterPanel7Layout = new javax.swing.GroupLayout(letterPanel7);
letterPanel7.setLayout(letterPanel7Layout);
letterPanel7Layout.setHorizontalGroup(
letterPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
letterPanel7Layout.setVerticalGroup(
letterPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 280, Short.MAX_VALUE)
);
javax.swing.GroupLayout letterPanel8Layout = new javax.swing.GroupLayout(letterPanel8);
letterPanel8.setLayout(letterPanel8Layout);
letterPanel8Layout.setHorizontalGroup(
letterPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
letterPanel8Layout.setVerticalGroup(
letterPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 280, Short.MAX_VALUE)
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(letterPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(letterPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(letterPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(14, 14, 14)
.addComponent(letterPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(64, 64, 64)
.addComponent(letterPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(letterPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(letterPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 22, Short.MAX_VALUE)
.addComponent(letterPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(33, 33, 33))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(184, 184, 184)
.addComponent(letterPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(233, Short.MAX_VALUE)))
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {letterPanel, letterPanel1, letterPanel2, letterPanel3, letterPanel4, letterPanel5, letterPanel6, letterPanel7, letterPanel8});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(letterPanel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(letterPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(letterPanel8, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(letterPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(letterPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(letterPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(letterPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(letterPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(39, 39, 39))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(letterPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(39, Short.MAX_VALUE)))
);
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {letterPanel, letterPanel1, letterPanel2, letterPanel3, letterPanel4, letterPanel5, letterPanel6, letterPanel7, letterPanel8});
pack();
}// </editor-fold>
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(GameFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(GameFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(GameFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(GameFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GameFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JPanel letterPanel;
private javax.swing.JPanel letterPanel1;
private javax.swing.JPanel letterPanel2;
private javax.swing.JPanel letterPanel3;
private javax.swing.JPanel letterPanel4;
private javax.swing.JPanel letterPanel5;
private javax.swing.JPanel letterPanel6;
private javax.swing.JPanel letterPanel7;
private javax.swing.JPanel letterPanel8;
// End of variables declaration
}
package com.Geme;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.util.Random;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class LetterPanel extends javax.swing.JPanel implements Runnable {
Random random = new Random();
private static int MAX_HEIGHT = 280;
private static int X = 14;
int y = 10;
String[] letters = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "M", "L", "K", "J", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Z"};
String letter = "";
initComponents();
Thread t = new Thread(this);
t.start ();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 280, Short.MAX_VALUE)
);
}// </editor-fold>
// Variables declaration - do not modify
// End of variables declaration
@Override
public void run() {
try {
Thread.sleep(random.nextInt(5000));
} catch (InterruptedException ex) {
}
letter = letters[random.nextInt(26)];
while (true) {
if (y > MAX_HEIGHT) {
y = 10;
letter = letters[random.nextInt(26)];
}
try {
Thread.sleep(50);
} catch (InterruptedException ex) {
}
this.repaint();
y += 2;
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString(letter, X, y);
}
}