2013-12-09 3 views
6

Я нахожусь в недоумении, что делать для завершения моего проекта проекта. Я работаю над игрой Connect Four, и я хотел бы увеличить размер шрифта внутри JButton. Я относительно новичок в программировании, и я еще ничего не работал с шрифтами. Я просто хотел бы по крайней мере удвоить шрифт внутри кнопки, чтобы сделать его более заметным во время игры. Может кто-нибудь помочь мне или указать мне на поиск решения? Благодаря! Мой код ниже.Увеличение размера шрифта в 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(); 
} 
} 

ответ

2

Я не уверен, если это будет работать, но, глядя на JButton документы, есть setFont(Font font) метод вы можете позвонить. Вы можете попробовать передать его Font, созданный с размером шрифта, который вы хотите использовать с помощью конструктора Font(String name, int style, int size).

18

Вы можете использовать:

button.setFont(new Font("Arial", Font.PLAIN, 40)); 
  • "Arial", очевидно, имя шрифта используется.
  • Font.PLAIN означает простой текст (в отличие от жирного или курсивного).
  • 40 является размер шрифта (с использованием той же системы нумерации для размера шрифта в Microsoft Word)

Javadoc for JComponent.setFont()

Javadoc for Java.awt.Font

+0

Должен ли я назвать это в actionPerformed? – Smn21

0

Это работает отлично с setFont(Font). Но есть только одна проблема, она также влияет на размер вашей кнопки, если размер шрифта достаточно велик ...

Смежные вопросы