2015-07-30 3 views
0

В настоящее время я работаю над проектом, и он просит меня создать случайную матрицу в Swing. Как мне создать окно 10x10 с номерами от 0 до 1?Как создать случайную матрицу в Swing?

Я смущен тем, как я установил Swing в Java.

+1

Вы можете использовать 'JTable', но наиболее распространенным требованием является создание какой-либо модели, которая содержит данные, которые вы хотите отобразить, за исключением того, что она просто подходит для поиска лучших компонентов, соответствующих вашим требованиям к выходным/входным параметрам – MadProgrammer

+2

Переполнение стека - это вопросы по конкретным проблемам в коде. Проведите некоторое исследование и сделайте попытку. Если у вас все еще есть проблемы, мы будем рады вам помочь. – deezy

ответ

1

Если вы хотите создать окно со случайными числами от 0 до 1, используйте:

import javax.swing.*; // JFrame, JPanel, ... 
import java.awt.*; // GridLayout 

public class RandomMatrix10x10 extends JFrame { // This is the window class 
    public static class RandomNumber extends JPanel { // This is the random number grid space class 
     public RandomNumber() { 
      JTextArea area = new JTextArea(); // This will contain the number 
      area.setText(Double.toString(Math.random())); // This puts the number in place 
      area.setEditable(false); // This prevents the user from changing the matrix 
      this.add(area); // This puts the number into the gridspace 
     } 
    } 

    public RandomMatrix10x10() { 
     this.setLayout(new GridLayout(10, 10)); // This makes the frame into a 10 x 10 grid 
     for (int i = 0; i < 100; i++) { 
      this.add(new RandomNumber()); // This puts all 100 numbers in place 
     } 
    } 
} 

Для использования, создать экземпляр RandomMatrix10x10 класса как так:

public static void main (String[] args) { 
    JFrame frame = new RandomMatrix10x10(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 3 
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH) // 6 
    frame.setVisible(true); 
} 

Рекомендуем также , если я ошибаюсь, и вам нужно только 1 или 0 вместо десятичной точки между ними, заменить линию

area.setText(Double.toString(Math.random()));

с линией

area.setText(Integer.toString((int) Math.round(Math.random()));

Надежда это помогает!

+0

Эй, спасибо за помощь! Вы знаете, как я мог бы сделать это в JavaFX? – Joe

+0

Извините, я не использую JavaFX, я попробую изучить его и вернуться к вам как можно скорее. – HyperNeutrino

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