Java Box Class: Unsolvable: aligning components to the left or right

Posted by user323186 on Stack Overflow See other posts from Stack Overflow or by user323186
Published on 2010-06-15T11:01:46Z Indexed on 2010/06/15 11:52 UTC
Read the original article Hit count: 267

Filed under:
|
|
|
|

I have been trying to left align buttons contained in a Box to the left, with no success.

They align left alright, but for some reason dont shift all the way left as one would imagine.

I attach the code below. Please try compiling it and see for yourself. Seems bizarre to me.

Thanks, Eric

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class MainGUI extends Box implements ActionListener{
    //Create GUI Components
    Box centerGUI=new Box(BoxLayout.X_AXIS);
    Box bottomGUI=new Box(BoxLayout.X_AXIS);
    //centerGUI subcomponents
    JTextArea left=new JTextArea(), right=new JTextArea();
    JScrollPane leftScrollPane = new JScrollPane(left), rightScrollPane = new JScrollPane(right); 
    //bottomGUI subcomponents
    JButton encrypt=new JButton("Encrypt"), decrypt=new JButton("Decrypt"), close=new JButton("Close"), info=new JButton("Info");
    //Create Menubar components
    JMenuBar menubar=new JMenuBar();
    JMenu fileMenu=new JMenu("File");
    JMenuItem open=new JMenuItem("Open"), save=new JMenuItem("Save"), exit=new JMenuItem("Exit");
    int returnVal =0;

    public MainGUI(){
        super(BoxLayout.Y_AXIS);
        initCenterGUI();
        initBottomGUI();
        initFileMenu();
        add(centerGUI);
        add(bottomGUI);
        addActionListeners();
    }
    private void addActionListeners() {
        open.addActionListener(this); 
        save.addActionListener(this); 
        exit.addActionListener(this); 
        encrypt.addActionListener(this); 
        decrypt.addActionListener(this); 
        close.addActionListener(this); 
        info.addActionListener(this); 
    }
    private void initFileMenu() {
        fileMenu.add(open);
        fileMenu.add(save);
        fileMenu.add(exit);
        menubar.add(fileMenu);
    }
    public void initCenterGUI(){
        centerGUI.add(leftScrollPane);
        centerGUI.add(rightScrollPane);
    }
    public void initBottomGUI(){
        bottomGUI.setAlignmentX(LEFT_ALIGNMENT);
        //setBorder(BorderFactory.createLineBorder(Color.BLACK));
        bottomGUI.add(encrypt);
        bottomGUI.add(decrypt);
        bottomGUI.add(close);
        bottomGUI.add(info);
    }
    @Override
    public void actionPerformed(ActionEvent arg0) {
        // find source of the action
        Object source=arg0.getSource();
        //if action is of such a type do the corresponding action
        if(source==close){
             kill();
        }
        else if(source==open){
            //CHOOSE FILE
            File file1 =chooseFile();
            String input1=readToString(file1);
            System.out.println(input1);
            left.setText(input1);
        }
        else if(source==decrypt){
            //decrypt everything in Right Panel and output in left panel
            decrypt();
        }
        else if(source==encrypt){
            //encrypt everything in left panel and output in right panel
            encrypt();
        }
        else if(source==info){
            //show contents of info file in right panel
            doInfo();
        }
        else {
            System.out.println("Error");
            //throw new UnimplementedActionException();
        }
    }

    private void doInfo() {
        // TODO Auto-generated method stub
    }
    private void encrypt() {
        // TODO Auto-generated method stub
    }
    private void decrypt() {
        // TODO Auto-generated method stub
    }
    private String readToString(File file) {
        FileReader fr = null;
        try {
            fr = new FileReader(file);
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }
        BufferedReader br=new BufferedReader(fr);

        String line = null;
        try {
            line = br.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }
        String input="";
        while(line!=null){
            input=input+"\n"+line;
            try {
                line=br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return input;
    }
    private File chooseFile() {
        //Create a file chooser
    final JFileChooser fc = new JFileChooser();
    returnVal = fc.showOpenDialog(fc);
        return fc.getSelectedFile();
    }
    private void kill() {
        System.exit(0);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       MainGUI test=new MainGUI();
       JFrame f=new JFrame("Tester");
       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       f.setJMenuBar(test.menubar);
       f.setPreferredSize(new Dimension(600,400));
       //f.setUndecorated(true);
       f.add(test);
       f.pack();
       f.setVisible(true);
    }

}

© Stack Overflow or respective owner

Related posts about java

Related posts about gui