2016-11-30 3 views
1

(с использованием netbeans) Итак, для моего проекта мне нужно добавить JscrollPane, чтобы пользователь мог видеть все выходные данные JTextArea, графику и две кнопки, которые я добавил. Это код, который я использую JscrollPane. Однако это приводит к тому, что программа больше не создает экран вывода. Мой вопрос: мне нужно добавить JscrollPane в JPanel или в JFrame, и если да, то что я делаю неправильно (попытался включить такую ​​же часть кода, как я считал релевантной)JScrollPane - в JFrame или JPanel?

PS Следует ли мне изменить с Borderlayout до Boxlayout? Будет ли это иметь значение с точки зрения добавления jscroll?

JFrame frame1 = new JFrame("Portfolio Results"); 


     frame1.setSize(800,800); 
     // frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 







     // output screen declartions 
     frame1.setLayout(new BorderLayout()); 

     JPanel panel1 = new JPanel(); 
     frame1.add(panel1,BorderLayout.PAGE_START); 


     panel1.setLayout(new BorderLayout()); 


     JTextArea area1 = new JTextArea(); 
     area1.setPreferredSize(new Dimension(600,600)); 
     panel1.add(area1,BorderLayout.PAGE_START); 

     JScrollPane scp1 = new JScrollPane(frame1,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
     frame1.add(scp1); 

     //code for Pie chart and two button 
     DefaultPieDataset piedata = new DefaultPieDataset(); 
     piedata.setValue("test", new Integer (100)); 
     JFreeChart chart = ChartFactory.createPieChart("test", piedata,  true, true, true); 

     PiePlot p = (PiePlot)chart.getPlot(); 
     ChartPanel testpan = new ChartPanel(chart); 
     panel1.add(testpan,BorderLayout.CENTER); 



     JButton button= new JButton("SAVE"); 

     // button.setPreferredSize(new Dimension(80,20)); 
     // Listener listener = new Listener(); 
    // button.addActionListener(this); 
     panel1.add(button,BorderLayout.PAGE_END); 


     JButton pbutton=new JButton("Print"); 
     panel1.add(pbutton,BorderLayout.SOUTH); 

ответ

2

Вы должны инициализировать JScrollPane с объектом, который вы хотите просмотреть.

В вашем примере, это кажется JTextArea является объект, который вы хотите, так:

JScrollPane scp1 = new JScrollPane(area1,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 

От Oracledocs:

JScrollPane(Component view) 

Создает JScrollPane , который отображает содержимое указанный компонент, где горизонтальные и вертикальные полосы прокрутки появляются всякий раз содержимое компонента больше, чем вид.

Также см. Это Oracleexample.

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