22. december 2000 - 13:19
Der er
3 kommentarer og
1 løsning
Hvordan fjerner man komponenter fra GridLayout i en Java Applet
Spørgsmålet går ud på, at jeg har en GridLayout som bliver fyldt op med nogle billeder via en funktion der indeholder en for løkke. Efter forløkken tilføjes et ekstra billede.
Derefter skal man kunne køre funktionen igen som skal slette det billede der blev lavet til sidst samtidigt med at den operetter flere billeder og tilføjer det samme billede til sidst.
HJÆLP!!! meget gerne med et eksempel.....
24. december 2000 - 21:20
#2
Nedenunder er noget simpelt kode, hvis du kan ændre den, så når man trykker \"button4\", bliver \"button4\" fjernet og der tilføjes 5 ekstra knapper er jeg tilfreds.
import com.sun.java.swing.*;
import java.awt.*;
public class ButtonExample extends JApplet
{
public void init()
{
getContentPane().setLayout(null);
setSize(700,500);
getContentPane().add(scrollPane1);
scrollPane1.setBounds(0,0,700,550);
panel1.setLayout(new GridLayout(0,1,0,0));
scrollPane1.add(panel1);
panel1.setBounds(0,0,696,546);
int NumberOfQuestions = 10;
addQuestionPanel(NumberOfQuestions);
}
Button button1;
Panel pnlQ;
java.awt.ScrollPane scrollPane1 = new java.awt.ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED);
java.awt.Panel panel1 = new java.awt.Panel();
void addQuestionPanel(int NumberOfQuestions)
{
for(int i=0; i < 5; i++)
{
pnlQ=new Panel();
button1 = new Button();
if (i%2==0)
pnlQ.setBackground(java.awt.Color.green);
else
pnlQ.setBackground(java.awt.Color.red);
pnlQ.setLayout(null);
pnlQ.setBounds(0,0,100,100);
button1.setLabel(\"button\"+i);
pnlQ.add(button1);
button1.setBounds(0,0,100,100);
button1.setBackground(java.awt.Color.cyan);
button1.setForeground(java.awt.Color.black);
panel1.add(pnlQ);
}
}
}
31. december 2000 - 15:49
#3
jeg håber at nedenstående kan bruges. jeg har dog ændret en del hist og her. den fjerner den sidste knap og tilføjer et hold nye knaper.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ButtonTest extends JApplet {
public ButtonTest() {
initComponents ();
}
private void initComponents () {
jPanel1 = new JPanel ();
jPanel1.setLayout (new GridLayout (0,1,0,0));
ScrollPane scrollPane1 = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED);
getContentPane().add(scrollPane1);
scrollPane1.add(jPanel1);
addQuestionPanel();
}
public void addQuestionPanel()
{
knapper = new JButton[NUMBEROFQUESTIONS];
panels = new JPanel[NUMBEROFQUESTIONS];
ActionListener kl = new KnapListener();
for (int i = 0; i != knapper.length; i++)
{
panels[i] = new JPanel();
panels[i].setBounds(0,0,100,100);
knapper[i] = new JButton(\"Knap\"+i);
knapper[i].addActionListener(kl);
panels[i].add(knapper[i]);
if (i%2==0)
panels[i].setBackground(Color.green);
else
panels[i].setBackground(Color.red);
jPanel1.add(panels[i]);
}
}
private class KnapListener implements ActionListener
{ public void actionPerformed(ActionEvent event)
{ Object source = event.getSource();
if (source == knapper[knapper.length-1])
{
(knapper[knapper.length-1]).setVisible(false);
addQuestionPanel();
validate();
}
}
}
private final int NUMBEROFQUESTIONS = 10;
private JButton[] knapper;
private JPanel[] panels;
private JPanel jPanel1;
}