Problem z JComponent graphics
kubek2k@gmail.com - 20-05-2007 00:04
Problem z JComponent graphics
Otóż taki śmieszny problem - może ktoś się kiedyś spotkał, może ja czegoś nie odpalam. Buduję sobie taki komponencik do wyświetlania skali kolorów, i co ciekawe zmiana rozmiaru na mniejszy spokojnie przeskalowuje, ale zmiana na większy od pierwotnego powoduje iż nie jest wyświetlana część komponentu. Z góry dziękuję za odpowiedź.
public class ColourScale extends Component {
private static final long serialVersionUID = 5038070281598219032L;
private Image image = null;
private double maxVal;
private double minVal;
private NumberFormat format;
public ColourScale(double minVal, double maxVal) { this.maxVal = maxVal; this.minVal = minVal;
format = new DecimalFormat("#.###");
}
public void paint(Graphics g) { super.paint(g);
if (maxSize == 0) { this.maxSize = this.getSize().getWidth(); }
// a little hack unfortunately it can't resize up ;/ double sizeX = 0; // if (this.getSize().getWidth() < maxSize) sizeX = this.getSize().getWidth(); // else // sizeX = maxSize;
double sizeY = g.getClipBounds().getMaxY();
if (image == null) image = this.createImage((int) sizeX, (int) sizeY);
Graphics gr = image.getGraphics(); for (int i = 0; i < (int) sizeX; i++) { gr.setColor(BTY.rgb[(int) ((double) i / sizeX * (double) BTY.size)]); gr.drawLine(i, 0, i, (int) sizeY); }
gr.setColor(Color.black); for (int i=0; i < (int)sizeX; i++) { if (i % 100 == 0) { gr.drawString(format.format(minVal + ((maxVal - minVal)/sizeX)*i), i, (int) sizeY - 2); } } gr.drawString(format.format(maxVal), (int) sizeX - 35, (int) sizeY - 2);
g.drawImage(image, 0, 0, this);
}
public void setMaxVal(double val) { maxVal = val; }
public void setMinVal(double val) { minVal = val; }
public static void main(String [] args) { JFrame f = new JFrame("LOL"); f.setSize(new Dimension(800, 600)); f.setPreferredSize(f.getSize());
JPanel p = new JPanel(new BorderLayout()); p.add(new ColourScale(0.0, 12.0), BorderLayout.CENTER); f.add(p);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE ); f.setVisible(true);
// f.pack(); } }
Kubek Bartosz - 20-05-2007 00:04
On 19 Maj, 18:08, kube...@gmail.com wrote: > Otóż taki śmieszny problem - może ktoś się kiedyś spotkał, może ja > czegoś nie odpalam. Buduję sobie taki komponencik do wyświetlania > skali kolorów, i co ciekawe zmiana rozmiaru na mniejszy spokojnie > przeskalowuje, ale zmiana na większy od pierwotnego powoduje iż nie > jest wyświetlana część komponentu. Z góry dziękuję za odpowiedź.
Mały off-topic z mojej strony: przez chwilę byłem skołowany, ponieważ myślałem że ten post ktoś wysłał z mojego konta! Niezła zbieżność nazw ;)
Pozderawiam :o)
Marek Puchalski - 21-05-2007 00:09
kubek2k@gmail.com wrote: > Otóż taki śmieszny problem - może ktoś się kiedyś spotkał, może ja > czegoś nie odpalam. Buduję sobie taki komponencik do wyświetlania > skali kolorów, i co ciekawe zmiana rozmiaru na mniejszy spokojnie > przeskalowuje, ale zmiana na większy od pierwotnego powoduje iż nie > jest wyświetlana część komponentu. Z góry dziękuję za odpowiedź.
Nie za bardzo nadążam za Twoim kodem (dawno temu ostatni raz używałem klasy Graphics). Wydaje mi się jednak że problem jest tu:
> if (image == null) > image = this.createImage((int) sizeX, (int) sizeY);
Zmienną image inicjalizujesz raz na początku rozmiarami x i y. Spróbuj po prostu:
image = this.createImage((int) sizeX, (int) sizeY);
Pozdrawiam
Marek
-- # You can't run away. Everyone's connected. # Marek Puchalski # Proud linux user: 409592
orikanueras - 18-06-2007 08:17
Halle Berry in Anal Movie!
Interesting
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
[postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ]
[PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ?
[MySQL] Problem z zapisem danych w bazie danych
Problem z mysql - can't connect to MySQL/nietypowo...
zanotowane.pldoc.pisz.plpdf.pisz.plabsolwenci.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|