I do not even know if I can do this, so this may be quick and painless.
I have my existing code, all the fields, buttons, scroll panel and everything else where I need them. Simple FlowLayout is fine for what I am doing.
Yesterday I created this goofy little graphic and went to put it in right next to my buttons. Figured I would just insert it above the buttons and let FlowLayout handle the rest and just stick it where it wanted.
It wouldn't work. The graphic is there, no compile errors, no errors at all in fact, it just does not show up unless I open a separate panel (as I have below in bold).
Can I not stick this little graphic, meant to be like a logo, into my current GUI without having this extra panel open up?
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.text.*;
import java.lang.*;
import javax.swing.JFrame;
public class Inventory2 extends JFrame
{
private JLabel cdNameLabel; // name label
private JLabel artistLabel; // item number label
private JLabel nstockLabel; // units in stock label
private JLabel priceLabel; // price each label
private JLabel itemLabel; // item number label
private JTextField cdNameField; // name display
private JTextField artistField; // artist display
private JFormattedTextField nstockField; // units in stock display
private JFormattedTextField priceField; // price each display
private JTextField itemField; // item number display
private NumberFormat nstockFormat; // format field and parse numbers
private NumberFormat priceFormat; // format field and parse numbers
private JButton btnAdd; // first button
private JButton btnPrev; // previous button
private JButton btnNext; // next button
private JButton btnDel; // last button
private JButton btnFirst; // first button
private JButton btnLast; // last button
private JButton btnModify; // modify button
private JButton btnSave; // save button
private JButton btnSearch; // search button
private JPanel buttonJPanel; // JPanle to hold buttons
private JPanel fieldJPanel; // JPanel to hold labels and displays
private JPanel fontJPanel; // JPanel to display logo
private int currCD;
private double total = 0; // variable for total inventory
private JList Inventorylist; // JList to take place of old array
private DefaultListModel listModel;
private JScrollPane jScrollPanel;
private float Invtotal = .00f;
DecimalFormat formatter = new DecimalFormat("$0.00");
public Inventory2() // create class and method to perform GUI build
{
initComponents();
}
private void initComponents()
{
// create label names
cdNameLabel = new JLabel("CD Name:");
artistLabel = new JLabel("Artist:");
nstockLabel = new JLabel("In Stock:");
priceLabel = new JLabel("Each Item Cost:$");
itemLabel = new JLabel("Item Number:");
// initial fields
cdNameField = new JTextField(25);
cdNameField.setEditable(true);
artistField = new JTextField(15);
artistField.setEditable(true);
nstockField = new JFormattedTextField(nstockFormat);
nstockField.setEditable(true);
nstockField.setColumns(5);
priceField = new JFormattedTextField(priceFormat);
priceField.setEditable(true);
priceField.setColumns(5);
itemField = new JTextField(4);
itemField.setEditable(true);
// JList
jScrollPanel = new JScrollPane();
Inventorylist = new JList();
currCD = 0;
// buttons
btnAdd = new JButton();
btnNext = new JButton();
btnPrev = new JButton();
btnDel = new JButton();
btnLast = new JButton();
btnFirst = new JButton();
btnModify = new JButton();
btnSave = new JButton();
btnSearch = new JButton();
getContentPane().setLayout(new FlowLayout());
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
// place textFields and labels
//artist
artistLabel.setText("Artist");
getContentPane().add(artistLabel);
artistField.setMinimumSize(new Dimension(70,20));
artistField.setPreferredSize(new Dimension(70,20));
getContentPane().add(artistField);
// cd name
cdNameLabel.setText("CD Name");
getContentPane().add(cdNameLabel);
cdNameField.setMinimumSize(new Dimension(70,20));
cdNameField.setPreferredSize(new Dimension(70,20));
getContentPane().add(cdNameField);
// copies in stock
nstockLabel.setText("Copies In Stock");
getContentPane().add(nstockLabel);
nstockField.setMinimumSize(new Dimension(5,20));
nstockField.setPreferredSize(new Dimension(5,20));
getContentPane().add(nstockField);
//price of cd
priceLabel.setText("Price");
getContentPane().add(priceLabel);
priceField.setMinimumSize(new Dimension(20,20));
priceField.setPreferredSize(new Dimension(20,20));
getContentPane().add(priceField);
//item number of cd
itemLabel.setText("Item Number");
getContentPane().add(itemLabel);
itemField.setMinimumSize(new Dimension(5,20));
itemField.setPreferredSize(new Dimension(5,20));
getContentPane().add(itemField);
// add listeners
btnAdd.setText("Add");
btnAdd.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
btnAddActionPerformed(evt);
}
});
getContentPane().add(btnAdd);
// PREVIOUS
btnPrev.setText("Previous");
btnPrev.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
btnPrevActionPerformed(evt);
}
});
getContentPane().add(btnPrev);
// NEXT
btnNext.setText("Next");
btnNext.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
btnNextActionPerformed(evt);
}
});
getContentPane().add(btnNext);
// SEARCH
btnSearch.setText("Search");
btnSearch.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
btnAddActionPerformed(evt);
}
});
getContentPane().add(btnSearch);
// FIRST
btnFirst.setText("First");
btnFirst.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
btnFirstActionPerformed(evt);
}
});
getContentPane().add(btnFirst);
// LAST
btnLast.setText("Last");
btnLast.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
btnLastActionPerformed(evt);
}
});
getContentPane().add(btnLast);
// MODIFY
btnModify.setText("Modify");
btnModify.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
btnAddActionPerformed(evt);
}
});
getContentPane().add(btnModify);
// SAVE
btnSave.setText("Save");
btnSave.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
btnAddActionPerformed(evt);
}
});
getContentPane().add(btnSave);
// DELETE
btnDel.setText("Delete");
btnDel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
btnAddActionPerformed(evt);
}
});
getContentPane().add(btnDel);
// new Jlist model
listModel = new DefaultListModel();
Inventorylist.setModel(listModel);
jScrollPanel.setViewportView(Inventorylist);
getContentPane().add(jScrollPanel);
pack();
}// close
private void btnAddActionPerformed(ActionEvent evt)
{
// Create cd to add
CdwArtist newCD = new CdwArtist();
newCD.setArtist(artistField.getText());
newCD.setName(cdNameField.getText());
newCD.setItemno(Integer.parseInt(itemField.getText()));
newCD.setNstock(Integer.parseInt(nstockField.getText()));
newCD.setPrice(Float.parseFloat(priceField.getText()));
// Add cd to list
listModel.addElement(newCD);
currCD = listModel.size()-1; // sets currCD to added index
// Clear the text fields after add
artistField.setText(null);
cdNameField.setText(null);
itemField.setText(null);
nstockField.setText(null);
priceField.setText(null);
}// end ADD
private void btnPrevActionPerformed(ActionEvent evt)
{
// Grab Previous cd
if (--currCD<0) currCD = listModel.size()-1;
CdwArtist newCD = (CdwArtist) listModel.get( currCD );
artistField.setText(newCD.getArtist());
cdNameField.setText(newCD.getName());
itemField.setText(String.valueOf(newCD.getItemno()));
nstockField.setText(String.valueOf(newCD.getNstock()));
priceField.setText(formatter.format(newCD.getPrice()));
}// end PREV
private void btnNextActionPerformed(ActionEvent evt)
{
// Grab Next cd
if (++currCD >= listModel.size()) currCD= 0;
CdwArtist newCD = (CdwArtist) listModel.get( currCD );
artistField.setText(newCD.getArtist());
cdNameField.setText(newCD.getName());
itemField.setText(String.valueOf(newCD.getItemno()));
nstockField.setText(String.valueOf(newCD.getNstock()));
priceField.setText(formatter.format(newCD.getPrice()));
}// end NEXT
private void btnFirstActionPerformed(ActionEvent evt)
{
// Grab First cd
CdwArtist newCD = (CdwArtist) listModel.get(0);
artistField.setText(newCD.getArtist());
cdNameField.setText(newCD.getName());
itemField.setText(String.valueOf(newCD.getItemno()));
nstockField.setText(String.valueOf(newCD.getNstock()));
priceField.setText(formatter.format(newCD.getPrice()));
}// end FIRST
private void btnLastActionPerformed(ActionEvent evt)
{
// Grab Last cd
CdwArtist newCD = (CdwArtist) listModel.lastElement();
artistField.setText(newCD.getArtist());
cdNameField.setText(newCD.getName());
itemField.setText(String.valueOf(newCD.getItemno()));
nstockField.setText(String.valueOf(newCD.getNstock()));
priceField.setText(formatter.format(newCD.getPrice()));
}// end LAST
// run it
public static void main(String args[])
{
JFrame frame = new JFrame( "Drawing 2D shapes" );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
[B] // create ShapesJPanel
ShapesJPanel shapesJPanel = new ShapesJPanel();
frame.add( shapesJPanel ); // add shapesJPanel to frame
frame.setSize( 125, 200 ); // set frame size
frame.setVisible( true ); // display frame[/B]
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new Inventory2().setVisible(true);
}
});
}
} // close class
I thought I could just slide
frame.add( shapesJPanel ); // add shapesJPanel to frame
in after my
getContentPane().setLayout(new FlowLayout());
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
and it would just show up as the first item in my pane. But it does not work.