ďťż
 
Problem z JComponent graphics ďťż
 
Problem z JComponent graphics
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • absolwenci.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com