Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 14:25   #1
Jakethefish
Форумчанин
 
Регистрация: 13.11.2009
Сообщений: 121
По умолчанию Jpanel в JscrollPane

Привет. Имеется панель с графиком. Юзер жмет кнопку + конкретно сам график перерисовывается, но вероятно размер панельки не меняется, так как скроллбары не появляются.
Как сделать так что бы скроллбары появлялись?
Код:
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;
	}

}
Jakethefish вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование метода repaint() объекта класса JPanel Alexcomeback Общие вопросы по Java, Java SE, Kotlin 1 31.10.2010 13:12
JScrollPane не отображает скроллы BleStaR Общие вопросы по Java, Java SE, Kotlin 2 20.09.2010 15:20