Я использую среду выполнения Java V23, скомпилированную как исходный уровень Java 21 с JDK 23 и Spring Boot 3.4.0. Ведение журнала с помощью Logback. «application.properties» устанавливает «logging.level.root=TRACE»
При открытии проекта с помощью Intellij он говорит, что мои «основные» вызовы не выполняются. Хотя он запускается при вызове из консоли, как уже говорилось, просто
было предложено выполнить простую задачу. Создали один:
- Основной класс
Код: Выделить всё
import de.gombers.common.reflection.Tools; @SpringBootApplication @MapperScan(basePackages = "de.gombers.myhome.common.awattar.dbaccess, de.gombers.myhome.common.lng.dbaccess") @ComponentScan({"de.gombers"}) public class SampleGuiMain { @SuppressWarnings("unused") private static final Logger LOGGER = LoggerFactory.getLogger(Tools.getClassName()); private static final String[] request = new String[] { "SampleGuiMainRunner" }; public static void main(String[] args) { ApplicationContext contexto = new SpringApplicationBuilder(SampleGuiMain.class) .web(WebApplicationType.NONE) .headless(false) .run(request); } } - Класс выполнения команд
Код: Выделить всё
package de.gombers.myhome.mygui; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; import de.gombers.common.reflection.Tools; @Component public class SampleMainGuiRunner implements CommandLineRunner { @SuppressWarnings("unused") private final static Logger LOGGER = LoggerFactory.getLogger(Tools.getClassName()); @Autowired private final SampleMainGuiFrame mainFrame; @Autowired public SampleMainGuiRunner(final SampleMainGuiFrame mainFrame) { this.mainFrame=mainFrame; } @Override public void run(String... args) throws Exception { if (!args[0].equals("SampleGuiMainRunner")) { LOGGER.debug("Nothing requested"); return; } try { mainFrame.process(); } catch (Exception e) { LOGGER.error("", e); } } } - Переместить JFrame и JPanel в JTabbedPane
Код: Выделить всё
package de.gombers.myhome.mygui; import java.awt.BorderLayout; import java.util.concurrent.ExecutorService; import javax.swing.JFrame; import javax.swing.JTabbedPane; import javax.swing.JTextField; import javax.swing.WindowConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import de.gombers.common.properties.MyComponentListener; import de.gombers.common.reflection.Tools; import de.gombers.myhome.common.environment.GuiProperties; import de.gombers.myhome.mygui.environment.MyHomeGuiProperties; import de.gombers.myhome.mygui.lng.LngConsumptionPane; @Component public class SampleMainGuiFrame extends JFrame{ @SuppressWarnings("unused") private final static Logger LOGGER = LoggerFactory.getLogger(Tools.getClassName()); @Autowired private final SampleMainGuiPane myPane; private JTextField messageBox; protected final JTabbedPane tabbedPanes = new JTabbedPane(); @Autowired public SampleMainGuiFrame(final SampleMainGuiPane myPane) { super("MySample"); this.myPane=myPane; } public void process() { this.messageBox = new JTextField(); this.messageBox.setEditable(false); tabbedPanes.addTab("Sample", null, myPane, "my sample"); this.getContentPane().add(tabbedPanes, BorderLayout.CENTER); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); String panelId=this.getClass().getSimpleName(); this.setVisible(true); } } - JPane намеренно выдает исключение
Код: Выделить всё
package de.gombers.myhome.mygui; import java.awt.Color; import java.text.DecimalFormat; import java.util.List; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.brunchboy.util.swing.relativelayout.RelativeLayout; import com.brunchboy.util.swing.relativelayout.RelativeLayoutHelper; import de.gombers.common.reflection.Tools; import de.gombers.myhome.common.dataprovider.lambda.COPLambdaCalculator; import de.gombers.myhome.common.dataprovider.lambda.COPNibeCalculator; import de.gombers.myhome.common.dataprovider.lambda.COPSuperCalculator; import de.gombers.myhome.common.dataprovider.lambda.COPViessmanCalculator; import de.gombers.myhome.common.environment.GuiProperties; import de.gombers.myhome.lng.common.bindings.dto.AIOTEResultsMeterData; import de.gombers.myhome.mygui.environment.MyHomeGuiProperties; @Component public class SampleMainGuiPane extends JPanel { @SuppressWarnings("unused") private final static Logger LOGGER = LoggerFactory.getLogger(Tools.getClassName()); private int top=10, left=10; private int colWidth = 50; private final JTextField messageBox; @Autowired public SampleMainGuiPane() throws Exception { LOGGER.info("Have been invoked"); this.messageBox = new JTextField(); messageBox.setForeground(Color.BLACK); throw new Exception("by purpose thrown"); } }
Подробнее здесь: https://stackoverflow.com/questions/798 ... -exception
Мобильная версия