求一个界面!! 该界面是一个扑克牌的界面,布局非常简单,分成几个面板,其中一个面板中放置的是两个按钮Button1和Button2,分别表示"出牌"与"过牌";另外一个面板内嵌9个面板,分别放置9张纸牌,选中其中的扑克牌,点击"出牌"可将图片显示到屏幕上.只有70分了,请大哥大姐帮个忙,帮我实现一下,在下感激不劲. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /*我来给你实现了下,下面这段程序只放了两张牌,运行了一番,基本实现了你所要求的功能,但是在具体环节上,如当一张牌出过之后,它留下位置,应怎么处理,这都没有给予考虑*//** * */package com.yao;import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.ImageIcon;/** * @author * */public class CardFrame extends JFrame implements MouseListener { /** * @param args */ JButton outCard, passCard; JPanel control, mainPanel, showPanel; JLabel label; JLabel aceCard, kingCard; public CardFrame() { setSize(600, 600); Container cp = getContentPane(); cp.setLayout(new BorderLayout()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); control = new JPanel(); control.setPreferredSize(new Dimension(100, 100)); control.setLayout(new FlowLayout()); outCard = new JButton("OUT"); passCard = new JButton("PASS"); outCard.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (label == null) { JOptionPane.showMessageDialog(CardFrame.this, "请选牌"); return; } mainPanel.remove(label); mainPanel.revalidate(); showPanel.add(label); showPanel.revalidate(); validate(); repaint(); } }); passCard.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { label = null; return; } }); control.add(outCard); control.add(passCard); cp.add(control, BorderLayout.SOUTH); mainPanel = new JPanel(); mainPanel.setPreferredSize(new Dimension(300,300)); mainPanel.setLayout(null); aceCard = new Card(this, new ImageIcon("ace.gif")); kingCard = new Card(this, new ImageIcon("king.gif")); aceCard.setBounds(100,50,100,100); kingCard.setBounds(200,50,100,100); mainPanel.add(aceCard); mainPanel.add(kingCard); cp.add(mainPanel, BorderLayout.CENTER); showPanel = new JPanel(); showPanel.setPreferredSize(new Dimension(200,200)); cp.add(showPanel, BorderLayout.NORTH); setVisible(true); } public static void main(String[] args) { // TODO 自动生成方法存根 new CardFrame(); } public void mouseClicked(MouseEvent e) { // TODO 自动生成方法存根 } public void mouseEntered(MouseEvent e) { // TODO 自动生成方法存根 } public void mouseExited(MouseEvent e) { // TODO 自动生成方法存根 } public void mousePressed(MouseEvent e) { // TODO 自动生成方法存根 if (e.getSource() instanceof JLabel) label = (JLabel) e.getSource(); } public void mouseReleased(MouseEvent arg0) { // TODO 自动生成方法存根 }}/** * */package com.yao;import javax.swing.ImageIcon;import javax.swing.JLabel;/** * @author * */public class Card extends JLabel { public Card(CardFrame frame,ImageIcon icon){ super(icon); addMouseListener(frame); }} Geek618() ( ) ____________________________________我调试你的代码不知道为什么图片显示不出来,显示一个白色的面板 不可能吧,你确认.gif图片是和编译文件放在一起的吗?在试试吧! Geek618() ( ) --------------------图片可以演示,学习了!! 关于collection中的remove方法 求大侠们解答 java1.6 和1.5中SSL连接有什么不同? 如何得到JTextField控件的输入响应 关于DatagramPacket中缓冲区的大小 初用JBuilder写树出现的问题 日期格式化 yyyy-MM-dd 跟 yyyy-MM-DD 区别在哪里? 问个简单的swt+线程的问题(大家一定互相帮助) 如何在文本框里实现查找功能,象记事本里的功能一样,一查就使找到的文本反显出来 关于Hello.java的问题 Applet中自定义光标的问题.... 关于this的问题 新手求助一个简单问题!在线等!
*
*/
package com.yao;import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.ImageIcon;/**
* @author
*
*/
public class CardFrame extends JFrame implements MouseListener { /**
* @param args
*/
JButton outCard, passCard; JPanel control, mainPanel, showPanel; JLabel label; JLabel aceCard, kingCard; public CardFrame() {
setSize(600, 600);
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
control = new JPanel();
control.setPreferredSize(new Dimension(100, 100));
control.setLayout(new FlowLayout()); outCard = new JButton("OUT");
passCard = new JButton("PASS");
outCard.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (label == null) {
JOptionPane.showMessageDialog(CardFrame.this, "请选牌");
return;
}
mainPanel.remove(label);
mainPanel.revalidate(); showPanel.add(label);
showPanel.revalidate();
validate();
repaint(); }
});
passCard.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
label = null;
return;
}
}); control.add(outCard);
control.add(passCard); cp.add(control, BorderLayout.SOUTH); mainPanel = new JPanel();
mainPanel.setPreferredSize(new Dimension(300,300));
mainPanel.setLayout(null); aceCard = new Card(this, new ImageIcon("ace.gif"));
kingCard = new Card(this, new ImageIcon("king.gif"));
aceCard.setBounds(100,50,100,100);
kingCard.setBounds(200,50,100,100); mainPanel.add(aceCard);
mainPanel.add(kingCard); cp.add(mainPanel, BorderLayout.CENTER); showPanel = new JPanel();
showPanel.setPreferredSize(new Dimension(200,200)); cp.add(showPanel, BorderLayout.NORTH); setVisible(true);
} public static void main(String[] args) {
// TODO 自动生成方法存根
new CardFrame(); } public void mouseClicked(MouseEvent e) {
// TODO 自动生成方法存根 } public void mouseEntered(MouseEvent e) {
// TODO 自动生成方法存根 } public void mouseExited(MouseEvent e) {
// TODO 自动生成方法存根 } public void mousePressed(MouseEvent e) {
// TODO 自动生成方法存根
if (e.getSource() instanceof JLabel)
label = (JLabel) e.getSource(); } public void mouseReleased(MouseEvent arg0) {
// TODO 自动生成方法存根 }}/**
*
*/
package com.yao;import javax.swing.ImageIcon;
import javax.swing.JLabel;
/**
* @author
*
*/
public class Card extends JLabel {
public Card(CardFrame frame,ImageIcon icon){
super(icon);
addMouseListener(frame);
}}
____________________________________
我调试你的代码不知道为什么图片显示不出来,显示一个白色的面板
在试试吧!
--------------------
图片可以演示,学习了!!