- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我从 IntelliJ 编译我的项目时,没有任何问题,我的程序运行顺利,但是当我尝试使用 javac 从终端编译它时,警告“注意:Victor/presentation/TableControllerMenu.java 使用未经检查的或不安全的操作。”弹出,当我尝试执行它时,出现错误“线程“main”java.awt.IllegalComponentStateException 中的异常:contentPane 无法设置为 null。”。我猜想 IntelliJ 没有在文件中写入对象 contentPane 的初始化代码,这导致 javac 崩溃。我尝试将选项"file"->“设置”->“GUI 设计器”->“生成 GUI”从“二进制源文件”更改为“Java 源代码”,但这在编译时产生了更多错误...
这是 GUI 的代码,请告诉我是否需要更多代码:
package Victor.presentation;
import Victor.domain.TCPresPersInterface;
import Victor.persistence.TCRow;
import Victor.persistence.TCUtilities;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
public class TableControllerMenu extends JFrame {
static private TCPresPersInterface persInterface;
private DefaultTableModel newModel;
private JTableHeader newHeader;
private JPanel mainPanel;
private JButton rowEditorButton;
private JButton columnCastingButton;
private JButton manageTablesButton;
private JButton columnEditorButton;
private JButton basicUtilitiesButton;
private JButton fileHandlerButton;
private JButton goBackButton;
private JPanel ManageTablesPanel;
private JPanel BasicUtilitiesPanel;
private JPanel RowEditorPanel;
private JPanel ColumnEditorPanel;
private JPanel ColumnCastingPanel;
private JPanel FileHandlerPanel;
private JButton duplicateCurrentTableButton;
private JButton renameCurrentTableButton;
private JTextField duplicateTableNameField;
private JTextField renameTableField;
private JButton renameColumnButton;
private JButton modifyItemButton;
private JButton clearTableButton;
private JTextField newColumnNameField;
private JTextField newItemField;
private JTextField selectedColumnRenameField;
private JTextField newItemColumnField;
private JTextField newItemRowField;
private JCheckBox clearTableConfirmationBox;
private JButton addEmptyRowButton;
private JButton duplicateRowButton;
private JButton deleteRowButton;
private JTextField emptyRowField;
private JTextField rowDuplicateField;
private JTextField positionDuplicatedField;
private JTextField rowDeleteFIeld;
private JButton addEmptyColumnButton;
private JButton duplicateColumnButton;
private JButton moveColumnButton;
private JButton negateBinaryColumnButton;
private JButton deleteColumnButton;
private JTextField addEmptyColPosFIeld;
private JTextField duplicateColColFIeld;
private JTextField duplicatedColPosField;
private JTextField moveColColFIeld;
private JTextField moveColPosFIeld;
private JTextField negateColColField;
private JTextField deleteColColField;
private JButton columnToNumericalButton;
private JButton columnToBinaryButton;
private JButton columnToBinaryByButton;
private JButton columnToCategoricalButton;
private JTextField colNumericalColField;
private JTextField colBinaryColField;
private JComboBox colBinItemsBox;
private JTextField colBinIntervalDivField;
private JComboBox colBinaryIntervalLowerBox;
private JComboBox colBinEqualBox;
private JTextField colCategoricalField;
private JComboBox selItemsValBox;
private JTextField colBinIntervalColField;
private JButton importCSVButton;
private JButton exportCSVButton;
private JTextField importPathField;
private JTextField pathExportField;
private JTextField separatorImportField;
private JComboBox headerImportField;
private JComboBox dataTypeImportBox;
private JTextField separatorExportField;
private JComboBox headerExportField;
private JComboBox dataTypeExportField;
private JTabbedPane currentMenuTab;
private JPanel currentMenuPane;
private JTabbedPane tabbedPane1;
private JPanel currentTablePanel;
private JTable currentTable;
private JComboBox newColumnDType;
private JLabel manageTablesErrorLog;
private JLabel currentTableText;
private JLabel tableSizeText;
private JLabel errorLogText;
private JLabel tableHeaderText;
private JLabel tableTypesText;
private JTextField separatorColBinFIeld;
private JTextField itemsColBinFIeld;
private JButton deleteItemBoxButton;
private TableControllerMenu(String appName) {
super(appName);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setContentPane(mainPanel);
this.pack();
persInterface = TCPresPersInterface.getInstance();
actualize(true);
// DUPLICATE CURRENT TABLE BUTTON
duplicateCurrentTableButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String newName = duplicateTableNameField.getText();
String error = persInterface.duplicateTable(newName);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
duplicateTableNameField.setText("");
}
}
});
// RENAME CURRENT TABLE BUTTON
renameCurrentTableButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String newName = renameTableField.getText();
String error = persInterface.renameTable(newName);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(false);
renameTableField.setText("");
}
}
});
// IMPORT TABLE FROM FILE BUTTON
importCSVButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String path = importPathField.getText();
String separator = separatorImportField.getText();
String header = (String) headerImportField.getSelectedItem();
String type = (String) dataTypeImportBox.getSelectedItem();
String error = persInterface.fileHandling(false, path, separator, header, type);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
importPathField.setText("");
separatorImportField.setText("");
headerImportField.setSelectedIndex(0);
dataTypeImportBox.setSelectedIndex(0);
}
}
});
// EXPORT TABLE TO FIELD BUTTON
exportCSVButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String path = pathExportField.getText();
String separator = separatorExportField.getText();
String header = (String) headerExportField.getSelectedItem();
String type = (String) dataTypeExportField.getSelectedItem();
String error = persInterface.fileHandling(true, path, separator, header, type);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(false);
pathExportField.setText("");
separatorExportField.setText("");
headerExportField.setSelectedIndex(0);
dataTypeExportField.setSelectedIndex(0);
}
}
});
// RENAME COLUMN BUTTON
renameColumnButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String newName = newColumnNameField.getText();
String col = selectedColumnRenameField.getText();
String error = persInterface.renameColumn(newName, col);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
newColumnNameField.setText("");
selectedColumnRenameField.setText("");
}
}
});
// MODIFY ITEM BUTTON
modifyItemButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String value = newItemField.getText();
String row = newItemRowField.getText();
String col = newItemColumnField.getText();
String error = persInterface.modifyItem(value, row, col);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
newItemField.setText("");
newItemRowField.setText("");
newItemColumnField.setText("");
}
}
});
// CLEAR TABLE BUTTON
clearTableButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
if (clearTableConfirmationBox.isSelected()) {
String error = persInterface.clearTable();
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
clearTableConfirmationBox.setSelected(false);
}
} else
errorLogText.setText("ERROR: the 'are you sure' box must be marked in order to clear the table");
}
});
// ADD EMPTY ROW BUTTON
addEmptyRowButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String position = emptyRowField.getText();
String error = persInterface.addEmptyRow(position);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
emptyRowField.setText("");
}
}
});
// DUPLICATE ROW BUTTON
duplicateRowButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String row = rowDuplicateField.getText();
String pos = positionDuplicatedField.getText();
String error = persInterface.duplicateRow(row, pos);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
rowDuplicateField.setText("");
positionDuplicatedField.setText("");
}
}
});
// DELETE ROW BUTTON
deleteRowButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String row = rowDeleteFIeld.getText();
String error = persInterface.deleteRow(row);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
rowDeleteFIeld.setText("");
}
}
});
// ADD EMPTY COLUMN BUTTON
addEmptyColumnButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String pos = addEmptyColPosFIeld.getText();
String dtype = (String) newColumnDType.getSelectedItem();
String error = persInterface.addEmptyColumn(pos, dtype);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
addEmptyColPosFIeld.setText("");
newColumnDType.setSelectedIndex(0);
}
}
});
// DUPLICATE COLUMN BUTTON
duplicateColumnButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String col = duplicateColColFIeld.getText();
String pos = duplicatedColPosField.getText();
String error = persInterface.duplicateCol(col, pos);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
duplicateColColFIeld.setText("");
duplicatedColPosField.setText("");
}
}
});
// MOVE COLUMN BUTTON
moveColumnButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String col = moveColColFIeld.getText();
String pos = moveColPosFIeld.getText();
String error = persInterface.moveCol(col, pos);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
moveColColFIeld.setText("");
moveColPosFIeld.setText("");
}
}
});
// NEGATE BINARY COLUMN BUTTON
negateBinaryColumnButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String col = negateColColField.getText();
String error = persInterface.negateBinaryCol(col);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
negateColColField.setText("");
}
}
});
// DELETE COLUMN BUTTON
deleteColumnButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String col = deleteColColField.getText();
String error = persInterface.deleteCol(col);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
deleteColColField.setText("");
}
}
});
// COLUMN TO NUMERICAL BUTTON
columnToNumericalButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String col = colNumericalColField.getText();
String error = persInterface.colToNumeric(col);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
colNumericalColField.setText("");
}
}
});
// COLUMN TO BINARY BUTTON
columnToBinaryButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String items = itemsColBinFIeld.getText();
String separator = separatorColBinFIeld.getText();
String castTo = (String) selItemsValBox.getSelectedItem();
String col = colBinaryColField.getText();
String error = persInterface.colToBinary(col, items, separator, castTo);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
selItemsValBox.setSelectedIndex(0);
colBinaryColField.setText("");
itemsColBinFIeld.setText("");
separatorColBinFIeld.setText("");
}
}
});
// COL TO BINARY INTERVAL
columnToBinaryByButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String div = colBinIntervalDivField.getText();
String lower = (String) colBinaryIntervalLowerBox.getSelectedItem();
String equal = (String) colBinEqualBox.getSelectedItem();
String col = colBinIntervalColField.getText();
String error = persInterface.colToBinaryInterval(col, div, lower, equal);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
colBinIntervalDivField.setText("");
colBinaryIntervalLowerBox.setSelectedIndex(0);
colBinEqualBox.setSelectedIndex(0);
colBinIntervalColField.setText("");
}
}
});
// COLUMN TO CATEGORICAL BUTTON
columnToCategoricalButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
String col = colCategoricalField.getText();
String error = persInterface.colToCategory(col);
if (!error.equals(""))
errorLogText.setText("ERROR: " + error);
else {
errorLogText.setText("");
actualize(true);
colCategoricalField.setText("");
}
}
});
}
private void actualize(Boolean reloadTable) {
String current = persInterface.getCurrentTable();
currentTableText.setText("Current table: " + current);
tableSizeText.setText("Size: " + persInterface.getSizeText());
errorLogText.setText("");
if (reloadTable) {
try {
//TCUtilities.print(current);
int n_cols = TCUtilities.getNCols(current);
int n_rows = TCUtilities.getNRows(current);
String header_string = Arrays.toString(TCUtilities.getHeader(current).toArray());
header_string = header_string.replace("[", "");
header_string = header_string.replace("]", "");
String type_string = "";
for (int i = 0; i < n_cols; i++) {
if (i != 0) type_string += ", ";
type_string += TCUtilities.getColType(current, i).toString();
}
tableHeaderText.setText("Header: " + header_string);
tableTypesText.setText("Column types: " + type_string);
newModel = new DefaultTableModel(n_cols, n_rows + 2);
for (int i = 0; i < TCUtilities.getNRows(current); i++) {
newModel.insertRow(i, (Object[]) TCRow.getRow(current, i).toArray(new Object[n_cols]));
}
currentTable.setModel(newModel);
newHeader = new JTableHeader();
} catch (Exception e) {
System.out.println("ERROR IN ACTUALIZE: " + e.getMessage());
}
}
}
public static String execute(String currentTable) {
TCPresPersInterface.setCurrentTable(currentTable);
JFrame frame = new TableControllerMenu("Table Managing and Editing");
frame.setVisible(true);
return TCPresPersInterface.getCurrentTable();
}
public static void setCurrentTable(String currentTable) {
persInterface.setCurrentTable(currentTable);
}
public static Boolean hasCurrentTable() {
return persInterface.hasCurrentTable();
}
}
最佳答案
我终于解决了。我所做的是:文件 ->设置 ->编辑器 -> GUI设计器并将选项“生成GUI为:”从二进制类文件更改为Java源代码,并在所有 Pane 中更改“布局管理器”选项grom网格布局管理器(IntelliJ) 到 GridBagLayout(我想这有效,因为不是内部 IntelliJ 格式),并进行编译。
关于java - 从终端编译时,Swing GUI 出现 IntelliJ 错误 "contentPane cannot be set to null.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61887309/
我一直在尝试运行 junit 测试,但不断面临这个问题。我试图在互联网上寻找答案,但没有任何帮助。 ] 1 最佳答案 我遇到了同样的问题,但已通过更新 Intellij 最新版本 2020.3 解决。
我知道这个问题以前曾以各种形式提出过,但我已经检查了所有答案,我认为我们已经排除了所有答案。 错误: java.lang.NoClassDefFoundError: com/lgc/infra/geo
TL; 博士 我如何导入 com.intellij.psi.JavaPsiFacade我的 IntelliJ 插件中的类? 背景资料 我正在尝试开发一个 IntelliJ 插件。我一直在遵循入门指南
我目前正在为 IntelliJ 开发一个插件,并尝试使用另一个内置的 IntelliJ 插件作为依赖项 (git4idea)。如 IntelliJ 插件开发文档中所述,我将所需的 JAR 添加到项目结
我尝试在 MacOS 上安装与 IntelliJ 10 集成的 JProfiler。安装程序试图找到我没有的“IntelliJ 配置文件夹”,我也不知道如何创建。 任何帮助或提示都会很棒。 最佳答案
我记得有一个选项可以在失去对idea windows 的关注时自动构建当前项目(例如,您从intellij 切换到浏览器以测试您的webapp),但是我找不到(idea 12.1.6)。 你知道我在哪
我有两个 Java 项目作为 Bukkit/Spigot 插件。两个项目都使用 gradle、私有(private)存储库,一个项目应该从另一个项目继承。 项目: SpigotCore - 包含数据库
标题说明了一切……只是想让 Glassfish 继续前进。这是我得到的错误 Detected server admin port: 4848 [2015-04-06 07:37:56,138] Art
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 7 年前。 Improve t
每次我重新启动系统或安装新插件时,我的 intellij 键盘映射都会重置。如果重要的话,我正在开发容量非常有限的 win XP - 只有 1 个 25 GB 容量的驱动器。但是,仍有 7 GB 的可
这是一段简单代码的输出: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/java "- javaagent:/Applic
Intellij Idea的状态栏中是否显示选中的行数? (如果选择包括单词,则显示“字符数”选择计数) 最佳答案 评论中提到的功能现已可用。 右击状态栏,选择“行列数”,见图: 然后您在状态栏中看到
我想将大量代码重构到新类中。我需要一个工具来让我将部分旧代码标记为“已完成”,这样我就可以看到还剩下什么要做。 我把它想象成背景或边缘的一些颜色。如果我可以使用不同的颜色或向代码块添加注释,那将是最好
如何查找和排序 TODO项目按字母顺序排列,就像在 Eclipse 中一样? 我不能使用文件搜索功能,因为我只需要查找注释而不是字符串和文字。对于当前混合的源文件/模板/脚本,TODO 至少已经以下列
我正在使用 IntelliJ Idea 开发一个 Spring 项目。我想知道是否有办法从 IntelliJ 日志或其他一些黑暗的方式知道我在这个项目上花了多少时间? 我是在看到 Idea 的 Pro
当您有 todo:在您的评论中,intellij 可以检测到它并将其显示在待办事项列表中。我怎样才能让一些自定义标记被识别?例如,config: . 最佳答案 在“设置”中查看“编辑器”/“待办事项”
我已启用所有 soft wrap可以在 Intellij (2017.3) 中找到的设置: Appearance|General同意该 list : 我点击了“应用”——这通常实际上可以立即查看效果—
我需要调查微服务中的内存泄漏。我看到一些 Profile... Intellij 中的菜单项 单击它后,应用程序将运行。你能告诉我在哪里可以看到分析的结果吗? 最佳答案 此操作用于分析 Android
我将 IntellIJ 安装更新到最新版本 (11.1.4),现在没有出现编辑器窗口。双击文件,跳转到源代码,没有任何 react 。没有错误消息,只是没有出现。如果我双击一个 xml 布局文件,预览
有没有办法在项目中自动构建工件,就像它如何自动构建输出一样?如果存在快捷键也可以使用 -- 现在我需要单击 Build -> Build Artifacts -> Build这很麻烦。 编辑:在这种情
我是一名优秀的程序员,十分优秀!