2013-11-30 3 views
0

Я довольно новичок в java, и я пытаюсь отобразить таблицу умножения с помощью JLabel. Пользователь вводит два целых числа. m будет числом умножений, которое должно отображаться, а n будет таблицей раз. p = ответ, который должен отображаться, когда m x n Это мой кодJlabel cant display int

import java.awt.Container; 
import java.awt.GridLayout; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class TimesTable extends JFrame 
{ 
    public TimesTable(int m, int n, int p) 
    { 
      setTitle("TimesTable"); 
      //Container contents = getContentsPane(); 
      //contents.setLayout(new GridLayout(0, 3, 20, 10));   

      //for loop to calculate the times table 
      for(int num = 1; num >= m; m++) 
      { 
       multiplyAnswer = numOfMultiply * multiplyBy; 
       Container contents = getContentsPane(); 
       contents.setLayout(new GridLayout(0, 3, 20, 10)); 
       contents.add(new JLabel(m)); 
       contents.add(new JLabel("x")); 
       contents.add(new JLabel(n)); 
       contents.add(new JLabel("=")); 
       contents.add(new JLabel(p)); 
      } 

      setDefaultCloseOperation(EXIT_ON_CLOSE); 
      pack(); 
     } 

     public static void main(String[] args) 
     { 
      int m = Integer.parseInt(args[0]); 
      int n = Integer.parseInt(args[1]); 

      TimesTable theTimesTable = new TimesTable(m, n, p); 
      theTimesTable.setVisible(true); 
     } 

, но я продолжаю получать сообщение об ошибке. Что мне делать?

+0

См. [Как создать экземпляр JLabel в javadoc] (http://docs.oracle.com/javase/7/docs/api/javax/sw нии/JLabel.html # JLabel% 28java.lang.String% 29). Кроме того, мне нравится использовать 'String.valueOf (n)'. –

ответ

2

Вам нужно преобразовать свой int в строку, потому что конструктор меток, который вы ищете, хочет строку. Существует несколько способов сделать это. Например, вы можете использовать Integer.toString:

contents.add(new JLabel(Integer.toString(m)));

В качестве альтернативы, вы можете преобразовать его в неявном виде конкатенации его с пустой строкой, как и другие ответы предполагают, а именно:

contents.add(new JLabel("" + m));

+0

спасибо за ваша помощь.Я теперь получаю сообщение об ошибке «не могу найти символTimesTable TimesTable = новый TimesTable (numOfMultiply, multiplyBy, multiplyAnswer)» symbol: variable multiplyAnswer location: class TimesTable – User4356

0
contents.add(new JLabel(""+m)); 
+0

Благодарю вас за помощь. Теперь я получаю сообщение об ошибке «не может найти символ TimesTableTimeTable = новый TimesTable (numOfMultiply, multiplyBy, multiplyAnswer)»: переменная multiplyAnswer location: class TimesTable - – User4356

+0

Возможно, вы не указали переменную «multiplyAnswer», где вы когда-либо используете Это. Добавьте строку int multiplyAnswer = перед ее доступом ... – sanket

+0

извините, ошибка не найден символTimesTable TimesTable = new TimesTable (m, n, p) "symbol: variable p location: class TimesTable i изменил имена переменных .. но теперь, когда я изменил его обратно на m, n, p..i все равно получаю ту же ошибку – User4356

0

Try это ..

   contents.add(new JLabel(m+"")); 
      contents.add(new JLabel("x")); 
      contents.add(new JLabel(n+"")); 
      contents.add(new JLabel("=")); 
      contents.add(new JLabel(p+"")); 
+0

Благодарим вас за помощь. Теперь я получаю сообщение об ошибке " не может найти символTimesTable TimesTable = новый TimesTable (numOfMultiply, multiplyBy, multiplyAnswer) "symbol: variable multiplyAnswer location: c lass TimesTable - – User4356

+0

, где вы объявляете эти три переменные ** multiplyAnswer, numOfMultiply, multiplyBy ** – subash

+0

извините, ошибка не найдена символомTimesTable TimesTable = new TimesTable (m, n, p) "symbol: variable p location: class TimesTable. я изменил имена переменных ... но теперь, когда я сменил его на m, n, p..i, все равно получаю ту же ошибку – User4356

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