import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
public class RelationFrame extends JFrame {
public RelationFrame() {
super("RelationFrame");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
MyPanel mp = new MyPanel();
Container cont = getContentPane();
cont.setLayout(new BorderLayout());
cont.add(mp, BorderLayout.CENTER);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private class MyPanel extends JPanel {
private JComboBox cb = new JComboBox();
private JTextArea ta = new JTextArea();
private JScrollPane scroller = new JScrollPane();
public MyPanel() {
Insets i = new Insets(15, 15, 15, 15);
GridBagConstraints c = new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, i,
0, 0);
setLayout(new GridBagLayout());
Dimension dim = new Dimension(100, 20);
cb.setMinimumSize(dim);
cb.setPreferredSize(dim);
cb.setMaximumSize(dim);
dim = new Dimension(200, 200);
scroller.getViewport().setMinimumSize(dim);
scroller.getViewport().setPreferredSize(dim);
scroller.getViewport().setMaximumSize(dim);
scroller.getViewport().add(ta);
add(cb, c);
c.gridx++;
c.weightx = 1.0;
c.weighty = 1.0;
c.anchor = GridBagConstraints.NORTHEAST;
add(scroller, c);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int y = cb.getY() + (cb.getHeight() / 2);
int fromX = cb.getX() + cb.getWidth() + 2;
int toX = scroller.getX() - 2;
g.drawLine(fromX, y, toX, y);
g.drawLine(toX - 5, y - 5, toX, y);
g.drawLine(toX - 5, y+5, toX, y);
}
}
/**
* @param args
*/
public static void main(String[] args) {
new RelationFrame();
}
}