我无法完成学期项目的最终工作.我正在开发Connect Four游戏,我想增加JButton内部的字体大小.我对编程比较陌生,但我还没有使用任何字体.我只想将按钮内部的字体加倍,以使其在游戏过程中更加醒目.有人可以帮助我,还是指出我找到解决方案的方向?谢谢!我的代码如下.
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Connect implements ActionListener { private JFrame window = new JFrame("Connect Four by Steven and Anthony"); private JPanel myPanel = new JPanel(); private JPanel myPanelB = new JPanel(); private JButton[][] myButtons = new JButton[6][7]; private JButton[] buttons = new JButton[7]; private boolean win = false; private int count = 5; private int count2 = 5; private int count3 = 5; private int count4 = 5; private int count5 = 5; private int count6 = 5; private int count7 = 5; private int countA = 0; private String letter = ""; public boolean checkHorizontalWin(String letter) { for (int y = 0; y < myButtons.length; y++) { for (int x = 0; x < myButtons[y].length - 3; x++) { if (myButtons[y][x].getText().equals(letter) && myButtons[y][x + 1].getText().equals(letter) && myButtons[y][x + 2].getText().equals(letter) && myButtons[y][x + 3].getText().equals(letter) ) { return true; } } } return false; } public boolean checkVerticalWin(String letter) { for (int y = 0; y < myButtons.length - 3; y++) { for (int x = 0; x < myButtons[y].length; x++) { if (myButtons[y][x].getText().equals(letter) && myButtons[y + 1][x].getText().equals(letter) && myButtons[y + 2][x].getText().equals(letter) && myButtons[y + 3][x].getText().equals(letter) ) { return true; } } } return false; } public boolean checkDiagonalToTheLeftWin(String letter) { for (int y = 0; y < myButtons.length - 3; y++) { for (int x = 0; x < myButtons[y].length - 3; x++) { if (myButtons[y][x].getText().equals(letter) && myButtons[y + 1][x + 1].getText().equals(letter) && myButtons[y + 2][x + 2].getText().equals(letter) && myButtons[y + 3][x + 3].getText().equals(letter) ) { return true; } } } return false; } public boolean checkDiagonalToTheRightWin(String letter) { for (int y = 0; y < myButtons.length - 3; y++) { for (int x = 3; x < myButtons[y].length; x++) { if (myButtons[y][x].getText().equals(letter) && myButtons[y + 1][x - 1].getText().equals(letter) && myButtons[y + 2][x - 2].getText().equals(letter) && myButtons[y + 3][x - 3].getText().equals(letter) ) { return true; } } } return false; } public Connect(){ window.setSize(800,700); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myPanel.setLayout(new GridLayout(1,7)); myPanelB.setLayout(new GridLayout(6,7)); for (int i = 0; i < buttons.length; i ++){ buttons[i] = new JButton(); myPanel.add(buttons[i]); buttons[i].addActionListener(this); } for (int i = 0; i < 6; i ++){ for (int j = 0; j < 7; j ++){ myButtons[i][j] = new JButton(); myPanelB.add(myButtons[i][j]); } } window.add(myPanel, BorderLayout.NORTH); window.add(myPanelB, BorderLayout.CENTER); window.setVisible(true); } public void actionPerformed(ActionEvent e){ countA++; if (countA % 2 == 0) letter = "X"; else letter = "O"; if (e.getSource() == buttons[0]){ myButtons[count][0].setText(letter); count --; } if (e.getSource() == buttons[1]){ myButtons[count2][1].setText(letter); count2 --; } if (e.getSource() == buttons[2]){ myButtons[count3][2].setText(letter); count3--; } if (e.getSource() == buttons[3]){ myButtons[count4][3].setText(letter); count4--; } if (e.getSource() == buttons[4]){ myButtons[count5][4].setText(letter); count5--; } if (e.getSource() == buttons[5]){ myButtons[count6][5].setText(letter); count6--; } if (e.getSource() == buttons[6]){ myButtons[count7][6].setText(letter); count7--; } if (myButtons[0][0].getText().equals("O") || myButtons[0][0].getText().equals("X")){ buttons[0].setEnabled(false); } if (myButtons[0][1].getText().equals("O") || myButtons[0][1].getText().equals("X")){ buttons[1].setEnabled(false); } if (myButtons[0][2].getText().equals("O") || myButtons[0][2].getText().equals("X")){ buttons[2].setEnabled(false); } if (myButtons[0][3].getText().equals("O") || myButtons[0][3].getText().equals("X")){ buttons[3].setEnabled(false); } if (myButtons[0][4].getText().equals("O") || myButtons[0][4].getText().equals("X")){ buttons[4].setEnabled(false); } if (myButtons[0][5].getText().equals("O") || myButtons[0][5].getText().equals("X")){ buttons[5].setEnabled(false); } if (myButtons[0][6].getText().equals("O") || myButtons[0][6].getText().equals("X")){ buttons[6].setEnabled(false); } if (checkHorizontalWin(letter) || checkVerticalWin(letter) || checkDiagonalToTheLeftWin(letter) || checkDiagonalToTheRightWin(letter) ) { win = true; if (win == true) { JOptionPane.showMessageDialog(null, letter + " has won!"); System.exit(0); } } } /** * * @param args */ public static void main(String[] args){ new Connect(); } }
小智.. 26
您可以使用:
button.setFont(new Font("Arial", Font.PLAIN, 40));
"Arial"
显然是使用的字体的名称.
Font.PLAIN
表示纯文本(与粗体或斜体相对).
40
是字体大小(使用与Microsoft Word相同的字体大小编号系统)
用于JComponent.setFont()的Javadoc
Javadoc for Java.awt.Font