Hallo !
Ich habe mich gerade erst registiert und hoffe, dass mir jemand ein paar Denkanstöße geben kann. Da ich Java noch nicht wirklich drauf habe, kann ich euch bei Problemen noch nicht helfen, da die einfachen Sachen immer so schnell beantwortet werden :wink:. Aber ich hoffe einfach mal, dass ich hier ein bisschen aktiv sein kann - auch auf der 'helfenden Seite'.
Das hier ist gleich mal mein erstes Problem:
Ich möchte, dass das untere Bild später in der rechten Bildhälfte des ersten Bildes angezeigt wird.
So wäre es dann möglich links auf Test1 oder Test2 zu klicken und rechts erscheinen dann die Reiter.
Die beiden Ausgangsquelltexte sehen so aus:
Das andere 'Programm' sieht folgendermaßen aus:
Ich habe das alles anschließend so zusammengebastelt. Dennoch scheint er sich nicht dafür zu interessieren, was ich gerne im rechten Fenster haben möchte...
Da bin ich dann mal gespannt, ob sich hier jemand dran traut. Jede noch so kleine Anregung ist natürlich willkommen.
Vielen Dank schonmal im Voraus.
Loonholio
Ich habe mich gerade erst registiert und hoffe, dass mir jemand ein paar Denkanstöße geben kann. Da ich Java noch nicht wirklich drauf habe, kann ich euch bei Problemen noch nicht helfen, da die einfachen Sachen immer so schnell beantwortet werden :wink:. Aber ich hoffe einfach mal, dass ich hier ein bisschen aktiv sein kann - auch auf der 'helfenden Seite'.
Das hier ist gleich mal mein erstes Problem:
Ich möchte, dass das untere Bild später in der rechten Bildhälfte des ersten Bildes angezeigt wird.
So wäre es dann möglich links auf Test1 oder Test2 zu klicken und rechts erscheinen dann die Reiter.
Die beiden Ausgangsquelltexte sehen so aus:
Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.SwingConstants;
public class SplitFrame extends JFrame
{
SplitFrame()
{
getContentPane().setLayout(new BorderLayout());
Splittab st = new Splittab();
st.add( new ImageIcon("1.jpg"), "1", new JLabel("1"));
st.add( new ImageIcon("2.jpg"), "2", new JLabel("2"));
getContentPane().add( st );
setSize( 600, 400 );
}
public static void main( String[] args )
{
new SplitFrame().setVisible( true );
}
}
class Splittab extends JSplitPane
{
private JPanel left = new JPanel(), right = new JPanel();
public Splittab()
{
super( JSplitPane.HORIZONTAL_SPLIT );
setLeftComponent(left);
setRightComponent(right);
setOneTouchExpandable( false );
left.setBackground( Color.yellow );
left.setLayout(new BoxLayout(left, BoxLayout.Y_AXIS));
}
public void add( ImageIcon icon, String text, final JComponent component )
{
JButton bt = new JButton(text, icon);
bt.setOpaque( false );
bt.setBorderPainted(false);
bt.setAlignmentX(Component.CENTER_ALIGNMENT);
bt.setVerticalTextPosition( SwingConstants.BOTTOM );
bt.setHorizontalTextPosition( SwingConstants.CENTER );
left.add(bt);
bt.addActionListener(new ActionListener() {
public void actionPerformed( ActionEvent e ) {
setRightComponent( component );
}
});
}
}
Das andere 'Programm' sieht folgendermaßen aus:
Code:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
class aTabbedPanel extends JPanel
{
aTabbedPanel()
{
add( new JLabel("1") );
}
}
class bTabbedPanel extends JPanel
{
bTabbedPanel()
{
add( new JLabel("2") );
}
}
class cTabbedPanel extends JPanel
{
cTabbedPanel()
{
add( new JLabel("3") );
}
}
public class Karteisystem
{
public static void main( String args[] )
{
JFrame f = new JFrame();
JTabbedPane tabs = new JTabbedPane();
tabs.addTab( "1.", new aTabbedPanel() );
tabs.addTab( "2.", new bTabbedPanel() );
tabs.addTab( "3.", new cTabbedPanel() );
f.getContentPane().add( tabs );
f.pack();
f.setSize( 500, 300 );
f.setVisible( true );
}
}
Ich habe das alles anschließend so zusammengebastelt. Dennoch scheint er sich nicht dafür zu interessieren, was ich gerne im rechten Fenster haben möchte...
Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.SwingConstants;
import javax.swing.JTabbedPane;
class aTabbedPanel extends JPanel
{
aTabbedPanel()
{
add( new JLabel("1") );
}
}
class bTabbedPanel extends JPanel
{
bTabbedPanel()
{
add( new JLabel("2") );
}
}
class cTabbedPanel extends JPanel
{
cTabbedPanel()
{
add( new JLabel("3") );
}
}
public class Test extends JFrame
{
Test()
{
getContentPane().setLayout(new BorderLayout());
JFrame f = new JFrame();
JTabbedPane tabs = new JTabbedPane();
Splittab st = new Splittab();
st.add( new ImageIcon("1.jpg"), "1", new JTabbedPane());
tabs.addTab( "1", new aTabbedPanel() );
tabs.addTab( "2", new bTabbedPanel() );
tabs.addTab( "3", new cTabbedPanel() );
st.add( new ImageIcon("2.jpg"), "2", new JLabel("zwei"));
getContentPane().add( st );
setSize( 600, 400 );
}
public static void main( String[] args )
{
new Test().setVisible( true );
}
}
class Splittab extends JSplitPane
{
private JPanel left = new JPanel(), right = new JPanel();
public Splittab()
{
super( JSplitPane.HORIZONTAL_SPLIT );
setLeftComponent(left);
setRightComponent(right);
setOneTouchExpandable( false );
left.setBackground( Color.yellow );
left.setLayout(new BoxLayout(left, BoxLayout.Y_AXIS));
}
public void add( ImageIcon icon, String text, final JComponent component )
{
JButton bt = new JButton(text, icon);
bt.setOpaque( false );
bt.setBorderPainted(false);
bt.setAlignmentX(Component.CENTER_ALIGNMENT);
bt.setVerticalTextPosition( SwingConstants.BOTTOM );
bt.setHorizontalTextPosition( SwingConstants.CENTER );
left.add(bt);
bt.addActionListener(new ActionListener() {
public void actionPerformed( ActionEvent e ) {
setRightComponent( component );
}
});
}
}
Da bin ich dann mal gespannt, ob sich hier jemand dran traut. Jede noch so kleine Anregung ist natürlich willkommen.
Vielen Dank schonmal im Voraus.
Loonholio