我必须在Java中设计一个用户界面,其中所有可能的德州扑克牌组合都显示在屏幕上,因此:
据我所知,我基本上需要169个方格(Jbuttons)或13x13"表格#34;。所以我遇到了两个问题,我可以设计一个界面,我有这169个单独的按钮,但我该如何分配它们?我知道我需要两个for循环(一个在另一个内部)来生成列表,但我无法掌握如何。 我的一个朋友建议我使用矩阵而不是使用for循环创建按钮....
这是我的基本想法,但是当我按下它们并将其中写入的内容发送到JText时,我想更改按钮的颜色......
任何想法都值得赞赏,感谢您花时间阅读本文
package modelo;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Insets;
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.JPanel;
public class RangoImpreso implements ActionListener{
JButton []ArrayButton = new JButton[169];//Buttons
JPanel jp1;
JLabel jl1, jl2;
private RangoImpreso ()
{
JFrame frMain = new JFrame("Rango Pre-Flop");
frMain.setLayout(new BorderLayout(10, 20));
jl1 = new JLabel(); //jlabel that outputs number pressed
jl1.setText("Aquí ira el numero que se pulse");
mostrarBot();
frMain.add(jl1, BorderLayout.NORTH);
frMain.add(jp1, BorderLayout.SOUTH);
frMain.setSize(600, 600);
frMain.setLocation(700, 300);
frMain.setVisible(true);
frMain.setResizable(false);
frMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void mostrarBot() //method where the Jpanel is
{
jp1 = new JPanel(new GridLayout(13, 13, 0, 0));
for(int i=ArrayButton.length-1; i>=0; i--) //create buttons, add properties
{
ArrayButton[i] = new JButton(""+(i+1));
jp1.add(ArrayButton[i]);
ArrayButton[i].setMargin(new Insets(0, 0, 0, 0));
ArrayButton[i].addActionListener(this);
}
}
public static void main(String[] args)
{
RangoImpreso trin = new RangoImpreso();
}
@Override
public void actionPerformed(ActionEvent e) //Use jlabel to show button pressed
{
jl1.setText(e.getActionCommand());
}
}
答案 0 :(得分:0)
这些是创建按钮所需的两个for
循环
都从0到12计数,因此它将创建13 * 13按钮
for(int o = 0; o < 13; o++) {
for(int i = 0; i < 13; i++) {
//Create you buttons
JButton btn = new JButton();
//Add Handlers to change color and send text to textfield here...
}
}