//Main_window.java
package gui;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main_window {
static JFrame window;
static JComponent progname;
static JComponent toolbox;
static JComponent dropbox; // <= c est ce JScrollBar qui m interesse
static JComponent confirm;
public static void main(String[] args)
{
window=new JFrame(); //on cree une trame
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(1000, 750);
window.setTitle("Main window");
window.setVisible(true);//etat
init();
}
private static void init() {
JPanel scrolledpanel = new JPanel(new GridBagLayout());
//scrolledpanel.setPreferredSize(new Dimension(680,1600));
dropbox=new Dropboxpanel(scrolledpanel);
window.getContentPane().setLayout(new BorderLayout());
window.getContentPane().add(dropbox, BorderLayout.CENTER);
}
}
//Dropboxpanel.java
package gui;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneLayout;
public class Dropboxpanel extends JScrollPane {
private static final long serialVersionUID = 1L;
private JPanel own;
private int lasty;
private Insets insets=new Insets(3,3,3,3);
public Dropboxpanel (JPanel mypanel)
{
super(mypanel,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
own=mypanel;
lasty=-1;
init();
}
private void init() {
//this.add(new JLabel("Dropbox"));
this.setLayout(new ScrollPaneLayout());
this.setBackground(Color.black);
this.add(new JScrollBar());
//several times add but just for test purpose, remove em later
//addpanel(new Stringsubpanel());
//addpanel(new Fileboxsubpanel());
addpanel(new Floatsubpanel());
//addpanel(new Intsubpanel());
//addpanel(new Booleansubpanel());
}
private void addpanel(Subpanel toadd){
GridBagConstraints c=new GridBagConstraints();
c.insets=insets;
c.gridy=lasty + 1;
lasty++;
own.add(toadd, c);
}
}
//Floatsubpanel.java
package gui;
import java.awt.Color;
import java.lang.reflect.InvocationTargetException;
import javax.swing.JLabel;
public class Floatsubpanel extends Stringintabst {
public Floatsubpanel (){
super();
init();
}
public void init(){
defaultfield=new JLabel ("mettre un jspinner a float ");
c.gridy=1;
c.gridx=4;
this.add(defaultfield,c);
this.setBackground(Color.gray);
this.repaint();
}
}
//Stringintabst.java
package gui;
import java.awt.Checkbox;
import java.awt.Color;
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.TextField;
import javax.swing.JLabel;
public abstract class Stringintabst extends Subpanel {
TextField namefield = new TextField ("", 20);
JLabel name= new JLabel ("Name :");
TextField codefield = new TextField ("", 20);
JLabel code = new JLabel ("Cmd line code :");
TextField prefixfield = new TextField ("", 5);
JLabel prefix = new JLabel ("Prefix :");
TextField joinerfield = new TextField ("", 3);
JLabel joiner = new JLabel ("Joiner :");
Component defaultfield ;
JLabel deflt = new JLabel ("Default :");
Checkbox hidden = new Checkbox("Hidden ", true);
public Stringintabst (){
super();
panelname= new JLabel ("String");
init();
}
private void init() {
c.gridx=1;
this.add(name,c);
c.gridx=2;
this.add(namefield,c);
c.gridx=3;
this.add(code,c);
c.gridx=4;
this.add(codefield,c);
c.gridx=5;
this.add(hidden,c);
c.gridy=1;
c.gridx=0;
this.add(prefix,c);
c.gridx=1;
this.add(prefixfield,c);
c.gridy=2;
c.gridx=0;
this.add(joiner,c);
c.gridx=1;
this.add(joinerfield,c);
c.gridy=1;
c.gridx=3;
this.add(deflt,c);
//c.gridx=4;
//this.add(defaultfield,c);
}
}
Partager