Java Swing MouseListener基础知识
我正在尝试构建一个Applet,它在左侧包含一个菜单,在右侧包含一些内容。因此,当有人单击菜单中的不同内容时,它应该在右侧加载相应的内容。因此,我添加了一个Java Swing MouseListener基础知识,java,swing,Java,Swing,我正在尝试构建一个Applet,它在左侧包含一个菜单,在右侧包含一些内容。因此,当有人单击菜单中的不同内容时,它应该在右侧加载相应的内容。因此,我添加了一个MouseListener。只是做一些事情,比如contentPanel.add(new-AnlegenNeu())是愚蠢的。这是我能说的,但感觉不对 这是我目前的代码: import java.awt.Dimension; import java.awt.event.MouseEvent; import java.awt.event.Mou
MouseListener
。只是做一些事情,比如contentPanel.add(new-AnlegenNeu())在我看来,在相应的if中code>是愚蠢的。这是我能说的,但感觉不对
这是我目前的代码:
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;
public class MainGUI extends JApplet{
private static final long serialVersionUID = 1L;
private JTree menuTree;
private JPanel contentPanel;
public MainGUI() {
JPanel menuPanel = new JPanel();
contentPanel = new JPanel();
contentPanel.setPreferredSize(new Dimension(500,500));
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
splitPane.setDividerLocation(0.5);
splitPane.setLeftComponent(menuPanel);
splitPane.setRightComponent(contentPanel);
menuTree = new MenuTree().getElement();
JScrollPane menuScrollPane = new JScrollPane(menuTree);
menuScrollPane.setPreferredSize(new Dimension(150, 200));
menuScrollPane.setMinimumSize(new Dimension(150, 200));
menuScrollPane.setMaximumSize(new Dimension(200, 200));
menuPanel.add(menuScrollPane);
getContentPane().add(splitPane);
getContentPane().setVisible(true);
menuTree.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if(e.getClickCount() == 1) {
String clicked = MainGUI.this.menuTree.getSelectionPath().getLastPathComponent().toString();
if(clicked.equals("Test")) {
MainGUI.this.contentPanel.add(new AufgabeNeu().getElement());
MainGUI.this.repaint();
}
}
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
});
}
}
什么是编写此代码的好方法?我觉得我做错了
编辑:我通过MainGUI访问代码中变量的方式。这个.contentPanel.add()
很奇怪,我不喜欢它。没有更好的方法吗?init()在哪里?为了获得更大的灵活性,请考虑a。你可以只写<代码> CaltPosi.Advand(<代码)>而不预先将它与<代码> Mungi。这个< /代码>。你可能需要一个<代码> MouseAdapter <代码>使你的代码更干净。如果左边的列表对应于右边显示的组件,您可能希望在它们之间保留一个映射。此外,如果组件在相互替换时大小不一样,则可能看起来很奇怪。