public void determinaBotao()
{
int x = 40,y = 270;int o=60;//local onde o botao vai fik na tela
int cargaHorariaTotalMode = 0;//recebe o valor da ch que ta armazenado no banco
int resul=0;//qnte d botoes q vao ser criados
String j=null;
String v,v1,v2,v3;
int n = 0,n1 = 0,n2 = 0,n3 = 0;
try
{
ArrayList<Integer> qtBotos = new ArrayList<Integer> ();
ArrayList<String> qtModulos = new ArrayList<String> ();
Object item=null;
if(comboBox.getSelectedItem()!=null)
item=comboBox.getSelectedItem();
Object ensino=null;int valorDoModulo=0;
resultado=comando.executeQuery("select ensino from t where turma='"+t2.getText()+"'");
resultado.next();
ensino=resultado.getObject(1).toString();
if(ensino.equals("Ensino Medio"))
valorDoModulo=1;
else if(ensino.equals("Ensino Fundamental"))
valorDoModulo=2;
resultado1=comando.executeQuery("select modulo from cargahoraria where Id_disciplina='"+item+"' and ensino='"+valorDoModulo+"' order by modulo");
while(resultado1.next())
{
qtModulos.add(resultado1.getString(1));
}
for(int valor=0;valor<qtModulos.size();valor++)
resultado=comando.executeQuery("select ch_total,plantao_cm_professor,plantao_sm_professor,tutoria,falta,modulo from cargahoraria where Id_disciplina='"+item+"' and modulo='"+qtModulos.get(valor)+"'");
while(resultado.next())
{
j =resultado.getObject(1).toString();
cargaHorariaTotalMode=Integer.parseInt(j);
v =resultado.getObject(2).toString();
n=Integer.parseInt(v);
qtBotos.add(n);
v1 =resultado.getObject(3).toString();
n1=Integer.parseInt(v1);
qtBotos.add(n1);
v2 =resultado.getObject(4).toString();
n2=Integer.parseInt(v2);
qtBotos.add(n2);
v3 =resultado.getObject(5).toString();
n3=Integer.parseInt(v3);
qtBotos.add(n3);
int menor=n;
if(menor>n1)
menor=n1;
else if(menor>n2)
menor=n2;
else if(menor>n3)
menor=n3;
//arrumar em cada linha a qntde de botoes
resul=cargaHorariaTotalMode/menor;
for(int numero=0;numero<qtBotos.size();numero++)
b=new BotaoModulo[resul]; message=new String[b.length];
for(int i=0;i<resul;i++)
{
BotaoModulo h=new BotaoModulo();
b[i]=h;
b[i].addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
String comenta=JOptionPane.showInputDialog("");
try {
for(int j=0;j<message.length;j++)
{
if(comenta != null && b[j].getText()!=null)
message[j]=comenta;
System.out.println("b[j] "+b[j].getText()+" seu comentario é "+message[j]);
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
b[i].setBounds(x, y, o, 25);
x+=o;Object h1=null;h1=comboBox.getSelectedItem();
String texto = null;int maximoModulos;
resultado=comando.executeQuery("select MAX(modulo) from disc_aluno where materia='"+h1+"' order by modulo");
if(resultado.next())
texto=resultado.getString(1);
maximoModulos=Integer.parseInt(texto);System.out.println(texto+"**");
JLabel l[]=new JLabel[qtModulos.size()];
for(int nro=0;nro<l.length;nro++)
l[nro]=new JLabel( qtModulos.get(nro));
int x1=20,y1=30,u=270,r=25;
if (comboBox.getSelectedItem() !=null && (!comboBox.getSelectedItem().equals(null)) && (!comboBox.getSelectedItem().equals("")))
for(int i1=0;i1<l.length;i1++)
{
l[i1].setBounds(x1, u, y1, r);
painel.add(l[i1]);
painel.repaint();
u+=30;
System.out.println(l[i1].getText());
}
if(i==(cargaHorariaTotalMode/menor)-1)
{//se trocou o modulo troca a linha
y+=30;System.out.println("dentro do if i: "+i);
}
if(i==11)
{
y+=30;
x=5; b[i]=h;
b[i].setBounds(x, y, o, 25);
}
else if(i==23)
{
y+=30;
x=5; b[i]=h;
b[i].setBounds(x, y, o, 25);
}
painel.add(h);
repaint();
}
}
}
catch(Exception e5)
{
JOptionPane.showMessageDialog(null, "Erro ");
e5.printStackTrace();
}
}//metodo
Problema para arrumar itens do banco na tela(jframe)[resolvido]
P
oi
ah tenho que colocar numa tela todos os modulos que pertencerem a disciplina que for selecionada na combobox o q eu pensei em fazer era criar um array de JLabel do tamanho da qtde de modulos q virem do banco onde o texto deles seria o proprio numero do modulo.Ate ai tudo bem o problema é q eu tenho que colocar tb botoes(equivalem as atividades de cada modulo) tipo a qntde de botoes q serao criados eu pego do banco mas tipo eu nao to conseguindo arrumar na tela.
Por exemplo se eu selecionei artes na combo deve aparecer 1 e 2 na tela e ao lado a qtde de botoes correspondentes so q se o modulo 1 tem 4 botoes e o modulo 2 tem 3 na linha do modulo 1 fica 7 botoes e na linha do modulo 2 fica vazio =(
Sabem como eu posso arrumar isso?!:)
Meu código é o seguinte:
não sei talvez eu esteja fazendo da maneira mais dificil...
muito obrigada pela ajuda eu tenho aprendido muito aqui no guj
=D
2 Respostas
P
ola,
coloquei um while e agora aparecem mais botões de acordo com a quantidade certinha q esta la no banco mas eu não estou conseguindo arrumar eles na tela eu queria que ficasse a qntde certa d botoes em cada linha do painel d acordo com os modulos so q agora eles aparecem todos na mesma linha.
segue em anexo o print do jeito que esta a tela,o codigo do metodo esta assim:
obrigada pela ajuda>

public void determinaBotao()
{
//local onde o botao vai fik na tela
int x = 40,y = 30;int o=60;
//recebe o valor da ch que ta armazenado no banco
int cargaHorariaTotalMode = 0;
//qnte d botoes q vao ser criados
int resul=0,vezes=0;
//variaveis para usar nos casting's das ch tiradas do banco
String v,v1,v2,v3,j;
int n = 0,n1 = 0,n2 = 0,n3 = 0;
//crio variaveis int para arrumar a posição dos itens na tela
int x1=20,y1=30,u=30,r=25;
try
{
ArrayList<Integer> qtBotos = new ArrayList<Integer> ();
ArrayList<String> qtModulos = new ArrayList<String> ();
Object item=null;
if(comboBox.getSelectedItem()!=null)
item=comboBox.getSelectedItem();
Object ensino=null;int valorDoModulo=0;
System.out.println("select ensino from t where turma='"+t2.getText()+"'");
//define de qual ensino vai buscar as disciplinas se medio ou fundamental
resultado=comando.executeQuery("select ensino from t where turma='"+t2.getText()+"'");
if(resultado.next())
{
ensino=resultado.getObject(1).toString();
if(ensino.equals("Ensino Medio"))
valorDoModulo=1;
else if(ensino.equals("Ensino Fundamental"))
valorDoModulo=2;
}
String maxM = null;int maximoModulo=0;
resultado=comando.executeQuery("select Max(modulo) from cargahoraria where Id_disciplina='"+item+"' and ensino='"+valorDoModulo+"' order by modulo");
while(resultado.next())
{
maxM=resultado.getString(1);System.out.println(maxM);
}
maximoModulo=Integer.parseInt(maxM);
while(vezes<maximoModulo)
{
System.out.println("select modulo from cargahoraria where Id_disciplina='"+item+"' and ensino='"+valorDoModulo+"' order by modulo");
resultado1=comando1.executeQuery("select modulo from cargahoraria where Id_disciplina='"+item+"' and ensino='"+valorDoModulo+"' order by modulo");
while(resultado1.next())
{
qtModulos.add(resultado1.getString(1));
}
for(int valor=0;valor<qtModulos.size();valor++)
resultado=comando.executeQuery("select ch_total,plantao_cm_professor,plantao_sm_professor,tutoria,falta,modulo from cargahoraria where Id_disciplina='"+item+"' and modulo='"+qtModulos.get(valor)+"'");
while(resultado.next())
{
j =resultado.getObject(1).toString();
cargaHorariaTotalMode=Integer.parseInt(j);
v =resultado.getObject(2).toString();
n=Integer.parseInt(v);
qtBotos.add(n);
v1 =resultado.getObject(3).toString();
n1=Integer.parseInt(v1);
qtBotos.add(n1);
v2 =resultado.getObject(4).toString();
n2=Integer.parseInt(v2);
qtBotos.add(n2);
v3 =resultado.getObject(5).toString();
n3=Integer.parseInt(v3);
qtBotos.add(n3);
int menor=n;
if(menor>n1)
menor=n1;
else if(menor>n2)
menor=n2;
else if(menor>n3)
menor=n3;
//arrumar em cada linha a qntde de botoes
resul=cargaHorariaTotalMode/menor;//qntde de botoes por modulo
for(int numero=0;numero<qtBotos.size();numero++)
b=new BotaoModulo[resul]; message=new String[b.length];
System.out.println(qtBotos.size()+"//");
for(int i=0;i<resul;i++)
{
BotaoModulo h=new BotaoModulo();
b[i]=h;
b[i].addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
String comenta=JOptionPane.showInputDialog("");
try {
for(int j=0;j<message.length;j++)
{
if(comenta != null && b[j].getText()!=null)
message[j]=comenta;
System.out.println("b[j] "+b[j].getText()+" seu comentario é "+message[j]);
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
b[i].setBounds(x, y, o, 25);
x+=o;
JLabel l[]=new JLabel[qtModulos.size()];
//faço um for para ir criando as jlabels do l[]
for(int nro=0;nro<l.length;nro++)
{
l[nro]=new JLabel( qtModulos.get(nro));
System.out.println("l[nro]: "+l[nro].getText());
}
//crio o painel
painelDosModulosBotoes =new JPanel();
painelDosModulosBotoes.setBounds(20, 270, 900, 250);
painelDosModulosBotoes.setVisible(true);
painelDosModulosBotoes.setLayout(null);
//se o item selecionado da combo não for null
if (comboBox.getSelectedItem() !=null && (!comboBox.getSelectedItem().equals(null)) && (!comboBox.getSelectedItem().equals("")))
//percorro o l[] e arrumo a posicao dos itns no painel
for(int i1=0;i1<l.length;i1++)
{
l[i1].setBounds(x1, u, y1, r);
painelDosModulosBotoes.add(l[i1]);
painel.add(painelDosModulosBotoes);
repaint();
u+=30;
System.out.println(l[i1].getText());
}
painelDosModulosBotoes.add(h);
painel.add(painelDosModulosBotoes);
repaint();
}
}
vezes++;
}
}
catch(Exception e5)
{
JOptionPane.showMessageDialog(null, "Erro ");
e5.printStackTrace();
}}

P
se houver outra maneira de resolver esta questão eu aceito sugestões,o q eu preciso fazer é a escolha das disciplinas atraves de uma combo e após isso deve aparecer todos os modulos relacionados a estas e também deve aparecer todas as atividades relacionadas aos modulos de acordo com a carga horaria dos mesmos(modulos)
eu pensei no seguinte ao fazer o cod acima:
escolho na combo quimica(tem 6 modulos e cada modulo tem 10horas de carga horaria total,cada atividade vale 2hs) dai aparece na tela 6 modulos e ao lado de cada um 5 botões que trocam o txt(atividade).
obrigada :)
if(moduloAtual<=maximoModulo)
{ Component[] components = painelDosModulosBotoes.getComponents();
for (Component component : components) {System.out
.print("for...");
if ( component instanceof BotaoModulo ) {
System.out.print("///"+contaQuantosBotoes+"///"+resul);
if(resul==contaQuantosBotoes)
{
y+=30;System.out.print(" "+"2 if");
x=40;
contaQuantosBotoes=0;
}
}
}
}
Criado 11 de maio de 2011
Ultima resposta 18 de mai. de 2011
Respostas 2
Participantes 1
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Lumina Lumina: a IA que te traz resultados Prompts prontos por especialistas. Resolva seus problemas de verdade.