Thinlet + Grafico de pizza

12 respostas
velo

Opa pessoal,

Eu tava dando uma olhando no Thinlet (saiu na Java magazine 20 e 21 ou 21 e 22), fiquei curioso, a velocidade é realmente imprecionante!

Fiz uns testes e eh BEM, mas BEM mais leve que o Swing, estou pensando em substituir em uma aplicação piloto o Swing pelo Thinlet, mas (como sempre tem um mas), mas essa aplicação tem um gráfico de pizza, com listener no grafico. Quando eu clico duas vezes num ponto do grafico ele abre uma caixa de dialogo sobre aquela parte.

Dei uma fuçada e não achei nada sobre como fazer isso.

Alguem sabe como?

VELO

12 Respostas

danieldestro

Oi velo,

Com o Thinlet você pode usar a tag <bean> que, se não me engano, você pode colocar um componente AWT numa boa, ou até mesmo Swing. Eu nunca fiz nada assim, mas dá uma tentada.

maikonaraujo

Eu também tava com uma dúvida parecida. Existe algum modo de customizar um componente do thinlet?
Criar um widget novo, ou simplesmente utilizar um componente (swing ou awt) que eu mesmo implementei e se fizer isso, eu perco as vantagens (como leveza) do thinlet?

Valeu!

danieldestro

Como eu disse em outro tópico, Thinlet foi feito pra ser simples e leve.
Se precisa dessas customizações, então use Swing.

velo

Infelizmente, preciso das duas coisas, mas eu adotei o seguinte:
fiz tudo q foi possivel no thinlet, o q sobrou, ou melhor, faltou, eu fiz em swing.

Quando abro o programa a tela em thinlet abre na hora, e fica rodando uma thread no fundo q carrega tudo q eh feito com swing, na hora H é soh dar o show e um refresh, ficou mais rapido, pena q o consumo de memoria se manteve, tava taum legal :frowning:

VELO

A

eh possivel faz algumas telas em thinlet e outras em swing e trabalhar td junto ?

na mesma tela tem como colocar parte em swing e parte em Thinlet ?

danieldestro

Pelo que sei, enquanto você usar Thinlet no Desktop (que roda AWT), você pode integrar com Swing sim.

velo

Alguem sabe como foi feito esse gráfico?
http://thinlet.sourceforge.net/drafts.html
Ultimo item do menu…

VELO

danieldestro
&lt;panel gap="4" top="4" right="4" columns="1"&gt;
	&lt;bean name="chart" bean="thinlet.drafts.ChartBean" weightx="1" /&gt;
	&lt;button text="Update" action="update(thinlet, chart)" halign="center" /&gt;
&lt;/panel&gt;
package thinlet.drafts;

import java.awt.*;
import java.util.*;

public class ChartBean extends Component {
	
	private static int[] colors = { 0x2f505f, 0x207f00, 0x9fa0bf, 0x203f4f,
		0xaf6030, 0x8f3f6f, 0xa03f4f, 0x907f40, 0x603fb0, 0xff8000 };
	private static Random random = new Random();
	
	private int[] values = new int[32];
	
	public ChartBean() {
		update();
	}
	
	public void paint(Graphics g) {
		Dimension d = getSize();
		g.setColor(Color.white);
		g.fillRect(1, 1, d.width - 2, d.height - 2);
		g.setColor(Color.lightGray);
		g.drawRect(0, 0, d.width - 1, d.height - 1);
		for (int i = 0; i < (d.width - 20) / 10; i++) {
			int value = values[i % values.length] * (d.height - 20) / 100;
			g.setColor(new Color(colors[i % colors.length]));
			g.fillRect(10 + i * 10, d.height - value -10, 8, value);
		}
	}
	
	public void update() {
		for (int i = 0; i < values.length; i++) {
			values[i] = 10 + Math.abs(random.nextInt() % 90);
		}
	}
	
	public Dimension getPreferredSize() {
		return new Dimension(240, 120);
	}
}
velo

Onde c conseguiu esse fonte ?

danieldestro

Sou hacker… heehehehe… é nada.
Vem junto com o download do Thinlet.

velo

danieldestro:
Sou hacker… heehehehe… é nada.
Vem junto com o download do Thinlet.

:oops: :oops: :oops:

danieldestro

Isso acima mostra que é possível incluir um Componente AWT numa boa, o que, por herança, mostra que dá pra incluir um componente Swing, já que els herdam de Component da AWT.

Criado 7 de março de 2005
Ultima resposta 20 de abr. de 2005
Respostas 12
Participantes 4