При добавлении прокрутки к текстовому полю это поле исчезает - Java

Узнай цену своей работы

Формулировка задачи:

Проблема в том, что когда добавляю прокрутку к текстовому полю, то оно (поле) вообще пропадает. В чем может быть проблема?
tArea= new JTextArea();
        tArea.setBounds(10, 60, 320, 220);
        tArea.setBackground(Color.GRAY);
        c.add(tArea);

       scroll = new JScrollPane(tArea);
       scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

Решение задачи: «При добавлении прокрутки к текстовому полю это поле исчезает»

textual
Листинг программы
package laba4;
 
 
import java.awt.*;
import javax.swing.*;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
 
public class Laba4 {
    public static void main(String[] args) {
         {
            MainFrame frame = new MainFrame(); 
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
            frame.setTitle("hello");
            frame.setVisible(true); 
            
        }
    }
}
 
class MainFrame extends JFrame {
    
    private JLabel tfFunc;
    private JTextArea tArea;
    private JTextField tfBorderA, tfBorderB, tfStep;
    private static JScrollPane scroll;
    private static final int DEFAULT_WIDTH = 650;
    private static final int DEFAULT_HEIGHT = 350;
 
    private static double borA = 0, borB = 0, dx = 0;
    private static final double a = 2;
    private static int step = 0;
    private static double[][] mass = new double[1000][1000];
    
 
    public MainFrame() {
 
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        setLocationByPlatform(true);
 
        Container c = getContentPane();
        c.setLayout(null);
 
        JButton massButton = new JButton("Создать массив");
        massButton.setBounds(350, 120, 270, 30);
        c.add(massButton);
        massButton.addActionListener(e -> {
            for (double i = borA; i < borB; i = i + dx)
                step++;
            mass = massCreate(borA, borB, dx, step, a);
            for (int i = 0; i < step; i++) {
                tArea.setText(mass[i][1] + "\n" + tArea.getText());
            }
        });
 
        tfFunc = new JLabel("Функция: y=a-в€љx * cos(ax)");
        tfFunc.setBounds(350, 60, 270, 30);
        c.add(tfFunc);
        
        JLabel aaa = new JLabel("a = 2");
        aaa.setBounds(350, 85, 270, 30);
        aaa.setHorizontalAlignment(JLabel.LEFT);
        c.add(aaa);
          
 
        JLabel btnBorderA = new JLabel("Граница А");
        btnBorderA.setBounds(10, 10, 100, 25);
        btnBorderA.setHorizontalAlignment(JLabel.CENTER);
        c.add(btnBorderA);
 
        tfBorderA = new JTextField("0");
        tfBorderA.setBounds(100, 10, 30, 25);
        c.add(tfBorderA);
 
        JLabel btnBorderB = new JLabel("Граница B");
        btnBorderB.setBounds(160, 10, 100, 25);
        btnBorderB.setHorizontalAlignment(JLabel.CENTER);
        c.add(btnBorderB);
 
        tfBorderB = new JTextField();
        tfBorderB.setBounds(250, 10, 30, 25);
        c.add(tfBorderB);
        
        JLabel btnStep = new JLabel("Шаг");
        btnStep.setBounds(310, 10, 100, 25);
        btnStep.setHorizontalAlignment(JLabel.CENTER);
        c.add(btnStep);
 
        tfStep = new JTextField();
        tfStep.setBounds(380, 10, 50, 25);
        c.add(tfStep);
        
   
        
        tArea= new JTextArea();
        tArea.setBounds(10, 60, 320, 220);
        tArea.setBackground(Color.GRAY);
        c.add(tArea);
        
        
       //scroll = new JScrollPane(tArea);
       //scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
 
    
        JButton btnAll = new JButton("Задать");
        btnAll.setBounds(480, 10, 100, 25);
        c.add(btnAll);
        btnAll.addActionListener(e -> {
            borA = Double.parseDouble(tfBorderA.getText());
            borB = Double.parseDouble(tfBorderB.getText());
            dx = Double.parseDouble(tfStep.getText());
        });
    }
 
    public static double[][] massCreate(double x1, double x2, double dx, double k, double a) {
        double x = x1;
        for (int i = 0; i < k; i++) {
            double y;
            
             
         y = a-(Math.sqrt(x)*Math.cos(a*x));
            mass[i][0] = x;
            mass[i][1] = y;
            x = x + dx;
        }
        return mass; 
    }
       
    
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы