> Hi all - I have an application where my main frame has a tabbed
> interface,
[quoted text clipped - 17 lines]
>
> Any help is appreciated.
Sub-classing JComponent directly is probably more appropriate. Even
easier is using a ready-made library such as JFreechart.
You might get better advice from comp.lang.java.gui (this reply is
cross-posted with follow-ups set to comp.lang.java.gui only).
Dan.

Signature
Daniel Dyer
http://www.uncommons.org
> Hi all - I have an application where my main frame has a tabbed interface,
> and each tab has a JPanel.
[quoted text clipped - 14 lines]
>
> (remove the +NOSPAM from my email address...)
This is how I would do it. You will need to make it look better but the
big pieces are all here.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class test {
public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
class ChartPanel extends JPanel {
private int value = 0;
public ChartPanel() {
setPreferredSize(new Dimension(200,150));
}
public void setValue(int v) {
value = v;
}
public void paintComponent(Graphics g) {
int w = getWidth();
int h = getHeight();
g.setColor(Color.WHITE);
g.fillRect(0,0,w,h);
g.setColor(Color.BLUE);
g.drawString("100%",0,10);
g.drawString("0%",0,h);
g.fillRect(w/3,h - (h * value / 100),
w/3,h * value / 100);
}
}
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final ChartPanel cp = new ChartPanel();
SpinnerNumberModel nm =
new SpinnerNumberModel(0,0,100,1);
JSpinner sp = new JSpinner(nm);
sp.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent ce) {
JSpinner sp = (JSpinner)ce.getSource();
cp.setValue(
((Integer)sp.getValue()).intValue());
}
});
JTabbedPane tp = new JTabbedPane();
tp.add(sp,"Changer");
tp.add(cp,"Chart");
f.add(tp);
f.pack();
f.setVisible(true);
}
};
EventQueue.invokeLater(r);
}
}

Signature
Knute Johnson
email s/nospam/knute/
<snip>
Thanks for the quick replies. I think I have it working now... It seems my
approach was wrong. Here is how I got it to work the way I needed.
1. Turned off the computer
2. Had <sufficient # of beers> to feel better about life.
3. Had a nice steak dinner.
4. Turned computer back on
5. It worked!
I guess what happened was I was running the wrong version or something. I
kept making changes, and I guess I saved them in the wrong place. Anyway -
once I rebooted and tried again - it just worked.
I think I will apply my new 5 step approach more often...