Java Swing组件在JTabbedPane中的错误JPanel上显示
我得到的组件泄漏到我的JTabbedPane中错误的JPanel上。请参阅下文: 我不知道为什么会发生这种事,我以前从未见过 这是发射和第一个福卡斯。如果我切换标签,它就会停止,不再发生 这看起来像是一个绘画问题,但它在完全错误的JPanel上,所以我不明白它是如何做到这一点的Java Swing组件在JTabbedPane中的错误JPanel上显示,java,swing,user-interface,Java,Swing,User Interface,我得到的组件泄漏到我的JTabbedPane中错误的JPanel上。请参阅下文: 我不知道为什么会发生这种事,我以前从未见过 这是发射和第一个福卡斯。如果我切换标签,它就会停止,不再发生 这看起来像是一个绘画问题,但它在完全错误的JPanel上,所以我不明白它是如何做到这一点的 public class RepoPanel extends javax.swing.JPanel { /** * Creates new form RepoPanel */ public RepoPanel()
public class RepoPanel extends javax.swing.JPanel {
/**
* Creates new form RepoPanel
*/
public RepoPanel() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
FLOWSLIST = new javax.swing.JList<>();
STARTFLOWS = new javax.swing.JButton();
DELETEFLOWS = new javax.swing.JButton();
REFRESHFLOWS = new javax.swing.JButton();
FLOWSLIST.setModel(new javax.swing.AbstractListModel<String>() {
String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
public int getSize() { return strings.length; }
public String getElementAt(int i) { return strings[i]; }
});
jScrollPane1.setViewportView(FLOWSLIST);
STARTFLOWS.setText("Start");
DELETEFLOWS.setText("Delete");
REFRESHFLOWS.setText("Refresh");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1)
.addGroup(layout.createSequentialGroup()
.addComponent(STARTFLOWS)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(DELETEFLOWS)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(REFRESHFLOWS)
.addGap(0, 675, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(STARTFLOWS)
.addComponent(DELETEFLOWS)
.addComponent(REFRESHFLOWS))
.addGap(18, 18, 18)
.addComponent(jScrollPane1)
.addContainerGap())
);
}// </editor-fold>
// Variables declaration - do not modify
private javax.swing.JButton DELETEFLOWS;
private javax.swing.JList<String> FLOWSLIST;
private javax.swing.JButton REFRESHFLOWS;
private javax.swing.JButton STARTFLOWS;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration
public类repoppanel扩展javax.swing.JPanel{
/**
*创建新表单面板
*/
公共事务委员会(){
初始化组件();
}
/**
*从构造函数中调用此方法来初始化表单。
*警告:不要修改此代码。此方法的内容始终为
*由表单编辑器重新生成。
*/
@抑制警告(“未选中”)
//
私有组件(){
jScrollPane1=newjavax.swing.JScrollPane();
FLOWSLIST=newjavax.swing.JList();
STARTFLOWS=newjavax.swing.JButton();
DELETEFLOWS=newjavax.swing.JButton();
REFRESHFLOWS=newjavax.swing.JButton();
setModel(新的javax.swing.AbstractListModel(){
字符串[]字符串={“项目1”、“项目2”、“项目3”、“项目4”、“项目5”};
public int getSize(){return strings.length;}
公共字符串getElementAt(inti){返回字符串[i];}
});
jScrollPane1.setViewportView(FLOWSLIST);
STARTFLOWS.setText(“开始”);
DELETEFLOWS.setText(“删除”);
REFRESHFLOWS.setText(“刷新”);
javax.swing.GroupLayout=newjavax.swing.GroupLayout(this);
这个.setLayout(布局);
layout.setHorizontalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1)
.addGroup(layout.createSequentialGroup()
.addComponent(启动流)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(删除流)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(刷新流)
.addGap(0,675,短.MAX_值)
.addContainerGap())
);
layout.setVerticalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(启动流)
.addComponent(删除流)
.addComponent(刷新流))
.addGap(18,18,18)
.addComponent(jScrollPane1)
.addContainerGap())
);
}//
//变量声明-不修改
私有javax.swing.JButton DELETEFLOWS;
私有javax.swing.JList FLOWSLIST;
私有javax.swing.JButton刷新流;
私有javax.swing.JButton STARTFLOWS;
私有javax.swing.JScrollPane-jScrollPane1;
//变量结束声明
}
公共类RippleUI扩展了javax.swing.JFrame{
公共编辑;
私有repoppanel repoppanel=null;
/**
*创建新表单选项卡UI
*/
公营机构({
repoPanel=新的repoPanel();
初始化组件();
}
/**
*从构造函数中调用此方法来初始化表单。
*警告:不要修改此代码。此方法的内容始终为
*由表单编辑器重新生成。
*/
@抑制警告(“未选中”)
//
私有组件(){
mxSwingConstants.SHADOW\u COLOR=COLOR.LIGHT\u GRAY;
mxConstants.W3C_SHADOWCOLOR=“#d3”;
编辑器=新的GrapherEditor();
BACKPANEL=newjavax.swing.JPanel();
TABS=newjavax.swing.JTabbedPane();
CONTROL_PANEL=newjavax.swing.JPanel();
JPanel EDITOR=EDITOR.createFrame(新的EditorMenuBar(EDITOR));
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout jPanel1Layout=新建javax.swing.GroupLayout(控制面板);
控制面板设置布局(jPanel1Layout);
setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,1020,短的最大值);
setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,556,短的最大值);
TABS.addTab(“控制面板”,控制面板);
TABS.addTab(“存储库”,repospanel);
repoPanel.setVisible(true);
TABS.addTab(“编辑器”,编辑器);
javax.swing.GroupLayout BACKPANELLayout=新的javax.swing.GroupLayout(BACKPANEL);
BACKPANEL.setLayout(BACKPANELLayout);
BACKPANELLayout.setHorizontalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(制表符));
BACKPANELLayout.setVerticalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(制表符));
javax.swing.GroupLayout=newjavax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(布局);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(后面板,
javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE));
layout.setVerticalGroup(
public class RippleUI extends javax.swing.JFrame {
public GraphEditor editor;
private RepoPanel repoPanel = null;
/**
* Creates new form TabbedUi
*/
public RippleUI() {
repoPanel = new RepoPanel();
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
mxSwingConstants.SHADOW_COLOR = Color.LIGHT_GRAY;
mxConstants.W3C_SHADOWCOLOR = "#D3D3D3";
editor = new GraphEditor();
BACKPANEL = new javax.swing.JPanel();
TABS = new javax.swing.JTabbedPane();
CONTROL_PANEL = new javax.swing.JPanel();
JPanel EDITOR = editor.createFrame(new EditorMenuBar(editor));
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(CONTROL_PANEL);
CONTROL_PANEL.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 1020, Short.MAX_VALUE));
jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 556, Short.MAX_VALUE));
TABS.addTab("Control Panel", CONTROL_PANEL);
TABS.addTab("Repository", repoPanel);
repoPanel.setVisible(true);
TABS.addTab("Editor", EDITOR);
javax.swing.GroupLayout BACKPANELLayout = new javax.swing.GroupLayout(BACKPANEL);
BACKPANEL.setLayout(BACKPANELLayout);
BACKPANELLayout.setHorizontalGroup(
BACKPANELLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(TABS));
BACKPANELLayout.setVerticalGroup(
BACKPANELLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(TABS));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(BACKPANEL,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(BACKPANEL,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
// <editor-fold defaultstate="collapsed" desc=" Look and feel setting code
// (optional) ">
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the default
* look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
UIManager.setLookAndFeel(new com.formdev.flatlaf.FlatLightLaf());
} catch (Exception ex) {
System.err.println("Failed to initialize LaF");
}
// </editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new RippleUI().setVisible(true);
}
});
}
// Variables declaration - do not modify
public javax.swing.JPanel BACKPANEL;
public javax.swing.JPanel CONTROL_PANEL;
public javax.swing.JTabbedPane TABS;
// End of variables declaration
repoPanel.setVisible(true);