Привет. Имеется панель с графиком. Юзер жмет кнопку + конкретно сам график перерисовывается, но вероятно размер панельки не меняется, так как скроллбары не появляются.
Как сделать так что бы скроллбары появлялись?
Код:
package sportinfo;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridBagLayout;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class GraphPanel extends JPanel {
int zoom = 1;
Results r = new Results(); // @jve:decl-index=0:
/**
* This is the default constructor
*/
public GraphPanel() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(zoom*100, zoom*200);
//this.setPreferredSize(new Dimension(zoom*1000, zoom*1000));
this.setLayout(new GridBagLayout());
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
super.setSize(zoom*100, zoom*200);
g.drawPolyline(getX(r), getY(r), r.results.size());
}
private int[] getY(Results r){
int[] ys = new int[r.results.size()];
for(int i = 0; i<r.results.size();i++){
if(i == 0){
ys[0] = getHeight();
}else{
ys[i] =( getHeight() - Integer.parseInt(Long.toString((r.results.get(i).time - r.results.get(0).time)/10000)));
}
}
return ys;
}
private int[] getX(Results r){
int[]xs = new int[r.results.size()];
for(int i = 0;i<r.results.size();i++){
if(i == 0){
xs[0] = 0;
}else{
xs[i] = (xs[i - 1] + zoom * 1000/r.results.size());
}
}
return xs;
}
}
package sportinfo;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ActionPanel extends JPanel {
private static final long serialVersionUID = 1L;
private JButton ZoomIn = null;
private JButton ZoomOut = null;
/**
* This is the default constructor
*/
public ActionPanel(final GraphPanel p) {
super();
GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridwidth = 3;
gridBagConstraints1.gridy = 2;
GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
this.setSize(300, 200);
this.setMinimumSize(new Dimension(100,200));
this.setLayout(new GridBagLayout());
getZoomIn().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
p.zoom += 1;
p.repaint();
}
});
getZoomOut().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
if(p.zoom > 1){
p.zoom+= -1;
p.repaint();
}
}
});
this.add(getZoomIn(), gridBagConstraints);
this.add(getZoomOut(), gridBagConstraints1);
}
/**
* This method initializes ZoomIn
*
* @return javax.swing.JButton
*/
private JButton getZoomIn() {
if (ZoomIn == null) {
ZoomIn = new JButton();
ZoomIn.setText("+");
}
return ZoomIn;
}
/**
* This method initializes ZoomOut
*
* @return javax.swing.JButton
*/
private JButton getZoomOut() {
if (ZoomOut == null) {
ZoomOut = new JButton();
ZoomOut.setText("-");
}
return ZoomOut;
}
}