1.å¦ä½ç¨SwingBuilder使ç¨èªå®ä¹çswingç»ä»¶
2.java课程设计源代码(急!框框架!架源!框框架!架源)
3.求一个简单又有趣的框框架JAVA小游戏代码
å¦ä½ç¨SwingBuilder使ç¨èªå®ä¹çswingç»ä»¶
groovyå·²ç»å¨SwingBuilderé为æ们é¢è®¾äºå¾å¤swingç»ä»¶ï¼ä»¥ä½¿æ们å¯ä»¥ç¨ä¸é¢è¿æ ·çå¿«æ·å½¢å¼æ¥æ建çé¢ï¼
swingBuilder.frame(
//å±æ§é
){
//åç»ä»¶
}
对äºä» ä» ä½¿ç¨swingçåçç»ä»¶ï¼è¿æ²¡æä»»ä½é®é¢ï¼ä½å¨å®é å¼åä¸å¯è½ä¼éå°éè¦ä½¿ç¨å¯¹åçç»ä»¶æ©å±åçèªå®ä¹ç»ä»¶ï¼å¦ä¸ä¸ªç»§æ¿äºJPanelçMyPanelç±»ï¼çæ åµï¼èè¿ä¸ªç±»ææ¾ä¸å¯è½åºç°å¨SwingBuilderçé¢è®¾å表éï¼é£è¿ç§æ åµä¸æ¯ä¸æ¯å°±æå³çä¸å¯ä»¥ä½¿ç¨groovy为æ们æä¾ç便å©ï¼åªè½ç¨åä¼ ç»çjavaå½¢å¼å»æ建çé¢å¢ï¼
çæ¡æ¯å¦å®çãSwingBuilderè½ç¶ä¸ä¼é¢è®¾ç¨æ·èªå®ä¹çç»ä»¶ï¼ä½å®æä¾äºå 个æ¥å£å¯ä»¥è®©ç¨æ·æèªå®ä¹çç»ä»¶è®¾ç½®è¿å»ï¼è¿æ ·å°±ä¾ç¶å¯ä»¥ç¨groovyçå¿«æ·å½¢å¼æ¥æ建çé¢äºãè¿å 个æ¥å£åå«æ¯ï¼
public void registerFactory(String name, Factory factory)
public void registerBeanFactory(String theName, Class beanClass)
registerFactory()
registerFactoryæ¹æ³å¯ä»¥æ³¨åä¸ä¸ªèªå®ä¹ç»ä»¶ï¼nameæå®äºéè¿swingBuilderæ建ç»ä»¶çå称ï¼å¦JFrameå¨swingBuilderéé¢è®¾çnameæ¯"frame"ï¼è¿å°±ä½¿å¾æ们å¯ä»¥éè¿swingBuilder.frame()æ建ä¸ä¸ªJFrameã
第äºä¸ªåæ°æ¥æ¶ä¸ä¸ªå®ç°äºFactoryæ¥å£çç±»ï¼è¿ä¸ªç±»éææï¼å®ç°ï¼å¦ä½å®ä¾åèªå®ä¹ç»ä»¶ï¼newInstanceï¼ï¼å¦ä½å¤çaddè¿æ¥çåç»ä»¶ï¼setChildï¼çä¸ç³»åçç¥ãé常并ä¸éè¦ç´æ¥å®ç°Factoryæ¥å£ï¼groovy为æ们æä¾äºä¸ä¸ªæ½è±¡ç±»ï¼AbstractFactoryï¼ï¼æ们åºä¼å 继æ¿è¿ä¸ªç±»ï¼ç¶ååæéæç¸åºçæ¹æ³è¿è¡éåãä¸é¢æ¥çä¸ä¸ªå¦ä½ä½¿ç¨è¿ä¸ªæ¥å£çä¾åï¼
/
*** èªå®ä¹äºä¸ä¸ªå¯ä»¥æ¾ç¤ºèæ¯å¾ççé¢æ¿
* @author keenlight
*
*/
class ImagePanel extends JPanel{
/
***
*/
private static final long serialVersionUID = 1L
private BufferedImage image
public ImagePanel(BufferedImage image){
super()
this.image = image
}
public ImagePanel(BufferedImage image, LayoutManager layout) {
super(layout)
this.image = image
}
public void paintComponent(Graphics g)
{
super.paintComponent(g)
if(image != null){
g.drawImage(image, 0, 0, this)
}
}
}
/
*** ImagePanelçFactory
* @author keenlight
*/
class ImagePanelFactory extends AbstractFactory{
private BufferedImage image
ImagePanelFactory(BufferedImage image){
this.image = image
}
@Override
public Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map properties) throws InstantiationException, IllegalAccessException {
def layout = properties.remove("layout")
new ImagePanel(image, layout)
}
public void setChild(FactoryBuilderSupport builder, Object parent, Object child) {
if (!(child instanceof Component) || (child instanceof Window)) {
return
}
parent = parent as ImagePanel
try {
def constraints = builder.context.constraints
if (constraints != null) {
parent.add(child, constraints)
if (child instanceof JComponent) {
child.putClientProperty(LayoutFactory.DEFAULT_DELEGATE_PROPERTY_CONSTRAINT, constraints)
}
builder.context.remove('constraints')
} else {
parent.add(child)
}
} catch (MissingPropertyException mpe) {
parent.add(child)
}
}
}
å®ä¹å¥½è¿äºç±»åå¦ä½ä½¿å ¶çæï¼åªéä¸æ¥ï¼
def bgImage = ImageIO.read(new File(image_path))
swingBuilder.registerFactory("imagePanel", new ImagePanelFactory(bgImage))
注å好ä¹åï¼ImagePanelç»ä»¶ä¾¿å¯åå ¶ä»åçç»ä»¶ä¸æ ·ä½¿ç¨äºï¼å¦ä¸æçJFrameä¸æ ·ï¼ã
registerBeanFactory()
registerBeanFactoryæ¯registerFactoryçä¸ç§ä¾¿å©å½¢å¼ï¼è°ç¨æ¤æ¥å£æ éæä¾Factoryï¼åªéæä¾èªå®ä¹ç±»çç±»åå³å¯ãæ¯å¦åçç»ä»¶éçJPanelå°±æ¯ç¨è¿ä¸ªæ¥å£æ³¨åçï¼SwingBuilderç±»ä¸æ³¨åJPanelçæºç å¦ä¸ï¼
registerBeanFactory("panel", JPanel)
è¿æ ·å°±å¯ä»¥æJPanel注å为"panel"æ¥ä½¿ç¨äºãå ¶å®registerBeanFactoryè¿ä¸ªæ¹æ³éé¢ä¸æ ·ä¹å®ä¾åäºä¸ä¸ªç»§æ¿äºAbstractFactoryç±»ï¼å®ä¼æè°ç¨è¿ä¸ªæ¹æ³æ³¨åçç»ä»¶å½åä¸ä¸ªjavaBeanï¼æ¹æ³åå·²ç»å¾ææ¾äºï¼ï¼æ以å®å¨ç»§æ¿AbstractFactoryç±»æ¶éåçnewInstanceæ¹æ³éæ¯ç´æ¥è¿åè°ç¨class.newInstance()çå®ä¾åç»æï¼classç±ç¬¬äºä¸ªå ¥åæä¾ãæ以对äºé£äºå¨å®ä¾åæ¶è°ç¨é»è®¤æé å¨å°±è¶³å¤çç»ä»¶ï¼ç¨registerBeanFactory()æ¹æ³æ¥æ³¨åä¼æ´ä¸ºä¾¿å©ãå½ç¶ï¼å¯¹äºæä¸é¢å®ä¹çImagePanelæ¥è¯´å°±ä¸è¡äºï¼å 为ImagePanelç±»å¨å®ä¾åæ¶éè¦æ¥åä¸ä¸ªå¾ç对象ï¼æä»¥å¿ é¡»ä½¿ç¨ç¥éº»ç¦ä¸ç¹çregisterFactory()ã
java课程设计源代码(急!!架源缺氧源码分析!框框架!架源)
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
public class game extends JFrame {
private JLabel label_2;
private int number;
private int sum;
final JLabel label = new JLabel();
final JLabel label_1 = new JLabel();
public static void main(String[] args) {
new game();
}
public game() {
super("点?!框框架");
getContentPane().setLayout(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent arg0) {
onClick();
}
});
button.setText("出牌");
button.setBounds(,架源 , , );
getContentPane().add(button);
label.setBorder(new LineBorder(Color.black, 1, false));
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setFont(new Font("", Font.BOLD, ));
label.setText("背面");
label.setBounds(, , , );
getContentPane().add(label);
label_1.setText("你已经拥有的牌:");
label_1.setBounds(, , , );
getContentPane().add(label_1);
this.setBounds(, , , );
this.setVisible(true);
getContentPane().add(getLabel_2());
}
public int randNumber() {
try {
Thread.sleep();
} catch (InterruptedException e) {
e.printStackTrace();
}
return (int) (Math.random() * + 1);
}
public void onClick() {
number = this.randNumber();
this.sum += number;
label.setText("" + number);
String strTemp = this.label_1.getText();
strTemp += "" + number + " ";
label_1.setText(strTemp);
String temp = "合计:" + sum;
label_2.setText(temp);
isWin();
}
public void isWin() {
if (sum > ) {
JOptionPane.showMessageDialog(this, "你输了");
clear();
return;
} else if (sum == ) {
JOptionPane.showMessageDialog(this, "你赢了");
clear();
return;
} else {
int i = JOptionPane.showOptionDialog(this, "是否继续?", "提示",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE, null, null, null);
if (i == JOptionPane.OK_OPTION) {
onClick();
} else
return;
}
}
private void clear() {
label_2.setText("合计:");
sum = 0;
number = 0;
label_1.setText("你已经拥有的牌:");
}
/
*** @return
*/
protected JLabel getLabel_2() {
if (label_2 == null) {
label_2 = new JLabel();
label_2.setText("合计:");
label_2.setBounds(, , , );
}
return label_2;
}
}
真好无聊中。。框框架
求一个简单又有趣的架源JAVA小游戏代码
以下是根据您的要求对文本内容进行修改和润色后的结果:
1. 游戏名称:连连看
2. 源代码简介:
本程序采用Java Swing库设计开发,创建了一个连连看游戏框架。框框架RIPS源码阅读游戏界面包含6行5列共个宝石按钮,架源以及三个功能按钮(退出、框框架重置、重新开始),并有一个显示分数的标签。
3. 游戏逻辑:
- 宝石按钮的标识网站源码位置坐标被存储在一个二维数组中。
- 定义了两个变量来记录被选中的按钮。
- 有一个静态变量来判断是否有按钮被选中。
- 游戏通过检测两个被选中的按钮是否符合连连看的消除规则来执行消除操作。
4. 代码说明:
- 变量和方法的命名应遵循Java编程规范,例如将“diamondsButton”更改为“diamondsButtons”。
- “grid”数组的抽奖过程源码声明应改为私有,因为它是类的成员变量。
- 类名“lianliankan”应与文件名一致。
- 应删除不相关的代码段,例如关于代码页的解释。
- 需要添加缺失的分号、括号和引号。导游官方源码
- 为避免混淆,变量名“i, j, k, n”应更具描述性。
5. 界面与交互:
- 界面布局需要使用专业的UI设计原则。
- 功能按钮和分数标签应该有适当的位置和大小。
- 游戏按钮应该具有统一的样式和大小。
6. 游戏玩法:
- 玩家需要点击并连接两个相同的宝石按钮以消除它们。
- 被消除的按钮会从界面上消失,并更新分数。
- 游戏的目标是在限定的时间内尽可能多地消除宝石。
7. 错误修正:
- 应修正打字错误,例如将“蔽岩扮”更正为“编撰”,“宏灶”更正为“宏量”。
- 确保所有的类、方法和变量定义都符合Java语法规则。
8. 性能优化:
- 考虑使用更有效的数据结构来存储和管理宝石按钮的位置。
- 优化消除逻辑,确保游戏运行流畅。
通过以上修改,不仅提升了代码的可读性和可维护性,也确保了游戏的逻辑清晰、界面友好。