Вопросы с тегами [swing]

1

голосов
1

ответ
53

Просмотры

Невозможно добавить ImageIcon в JFrame

Я пытался добавить изображение в JFrame, но я не могу показаться, чтобы сделать это. Я посмотрел на электронные учебники и другие подобные вопросы, но ничего не похоже на работу. ImageIcon = новый профессионалом ImageIcon ( "wizard.png"); ImageIcon ассасин = новый ImageIcon ( "assassin.png"); JFrame кадр = новый JFrame ( "Select"); frame.setBounds (50, 50,1000, 1000); JButton ш = новый JButton ( "Мастер"); JButton а = новый JButton ( "Assasin"); JFrame F = новый JFrame ( "Изображение"); JLabel img1 = новый JLabel (профессионал); frame.setLayout (нуль); f.setLayout (нуль); f.setIconImage (wiz.getImage ()); w.setBounds (30,380,100,60); frame.add (ш); a.setBounds (200, 380, 100, 60); frame.add (а); f.setVisible (истина); frame.setVisible (истина);
Syed
0

голосов
2

ответ
21

Просмотры

Как загрузить точное количество строк в JTable от MySQL и постраничное остальным?

Я пытаюсь загрузить данные из MySQL в мое приложение, где у меня есть JTable. Я хочу, чтобы загрузить только 100 строк, используя запрос, и я могу сделать это успешно, как сейчас. Кроме того, я хочу постраничное эти данные, таким образом, что если у меня есть следующая кнопка, и я нажимаю на том, что таблица должна быть обновлена ​​с более 100 записями и так далее. Этот метод загружает данные в таблицу: общественного недействительная showTable () {попробуйте {how.res = how.stat.executeQuery ( «выбери * от студентов порядка предела названия ASC 100»); в то время как (how.res.next ()) {Строка ID = how.res.getString (1); Название: String = how.res.getString (2); Строка контакта = how.res.getString (3); Object [] содержание = {ID, имя, контакт}; DefaultTableModel модель = (DefaultTableModel) jTable1.getModel (); model.addRow (содержание); }} Поймать (Exception е) {}} Я называю этот метод на форме инициализации, и теперь я получаю только 100 строк в таблицу, что я должен написать для следующей кнопки для загрузки следующих 100 строк и обновления таблицы? То, что я пробовал: частная пустота jButton3ActionPerformed (java.awt.event.ActionEvent ЭВТ) {// TODO добавить код обработки: попробуйте {numClick + = 100; how.res = how.stat.executeQuery ( "выберите * от студентов смещения" + numClick + ""); в то время как (how.res.next ()) {Строка ID = how.res.getString (1); Название: String = how.res.getString (2); Строка контакта = how.res.getString (3); Object [] содержание = {ID, имя, контакт}; DefaultTableModel модель = (DefaultTableModel) jTable1.getModel (); model.addRow (содержание); }} Поймать (Exception е) {}} Но это не дает мне никакого результата. Вот соединение: общественный класс JoinConnection {общественность против соединения; публичное заявление стат; Рез общественных ResultSet; общественного JoinConnection () {systemConnection (); } Общественного недействительными systemConnection () {попробуйте {Class.forName ( "com.mysql.jdbc.Driver"); CON = (com.mysql.jdbc.Connection) DriverManager.getConnection ( "JDBC: MySQL: // локальный: 3306 / библиотека", "корень", ""); стат = (Заявление) con.createStatement (); } Задвижка (ClassNotFoundException | SQLException е) {System.out.println (е); }}} Я использую NetBeans с MySQL. если вопрос не ясно, скажите, пожалуйста, для получения разъяснений. EDIT: Благодаря @George Z. Мы решили эту проблему путем изменения метода кнопки на то, как показано ниже. Я редактирование вопроса, потому что я не могу написать ответ в комментариях: частная пустота jButton3ActionPerformed (java.awt.event.ActionEvent ЭВТ) {попробуйте {numClick + = 100; DefaultTableModel модель = (DefaultTableModel) jTable1.getModel (); model.setRowCount (0); how.res = how.stat.executeQuery ( "выберите * от студентов ограничить "+ numClick +", 100"); в то время как (how.res.next ()) {Строка ID = how.res.getString (1); Название: String = how.res.getString (2); Строка контакта = how.res.getString (3); Object [] содержание = {ID, имя, контакт}; model.addRow (содержание); }} Поймать (SQLException е) {e.printStackTrace (); }}
Hefaz
1

голосов
0

ответ
39

Просмотры

как я мог getext из пункта меню, когда нажмите на заводной

Я пытаюсь получить текст с помощью этого кода, но появляюсь не ошибка такого свойства: MENUITEM для класса: Testgroovy Как я мог исправить этот ошибку импорт groovy.swing * импорт javax.swing.event * новый SwingBuilder () {ВОСТОЧНОМУ опр... fillMenu = {-> scripts.removeAll () Строка Megah = "" новый файл ( 'основной / заводная') listFiles () {каждый Megah = it.name.. scripts.add (MenuItem () {действие (название: Megah, закрытие: {Println menuItem.getText ()})})}} рама (название: 'тестирование', размер: [800, 600], видно: правда, defaultCloseOperation : javax.swing.WindowConstants.EXIT_ON_CLOSE) {{Menubar меню (идентификатор: 'сценарии', текст: 'Внешние сценарии')}} scripts.addMenuListener ([menuCanceled: {е ->; Println "menuCanceled"}, menuDeselected: {е ->; Println "menuDeselected"}, menuSelected: {е -> fillMenu (); Println "menuselected"}], как MenuListener)} I ИСПОЛЬЗОВАТЬ Println menuItem.getText (), но он не работает, пожалуйста, помогите мне
user8862613
1

голосов
0

ответ
34

Просмотры

ActionListener от контроллера не вызывает

У меня есть MVC с качанием проекта с двумя точками зрения, модель и контроллер. Контроллер имеет в качестве полей список моделей, и список представлений. Я пытался добавить слушателя на кнопку одного из моих взглядов: частная пустота initializeNewOrderListeners () {NewOrderView вид = (NewOrderView) views.get (0); JButton addOrderBtn = view.getAddOrderBtn (); addOrderBtn.addActionListener (новый ActionListener () {общественного недействительный actionPerformed (ActionEvent е) {System.out.println ( "тест");}}); } Я убедился, что у меня нет других слушателей порядка в моем классе NewOrderView, однако, действие не получает срабатывает при нажатии на кнопку. Я переместил код от контроллера к классу NewOrderView, где я создал кнопку, и все работает нормально, когда я нажимаю его. Что мне не хватает? Почему ActionListener не получает зарегестрирована от контроллера?
user30771
1

голосов
0

ответ
53

Просмотры

Кликабельные Кнопки на панели JTree?

Мне нужно переписать некоторый унаследованный код JTree, чтобы сделать реализацию приходить функции проще. Этот код создает три иконки для каждого узла (см скриншота, в красных коробках), которые выполняют какое-то действие при нажатии. Эти иконки содержатся в JPanel, который создается с помощью настраиваемой TreeRenderer. Screenshot текущий код отсчитывает пикселей, чтобы выяснить, какая иконка была нажата, то есть, если (х> = 0 && х = 4 && у = 13 && х
rfuegen
1

голосов
0

ответ
213

Просмотры

Модальный диалог Java замораживает все приложение при использовании JDK 8

Очень редко, когда показывает модальное диалоговое окно в приложении свинга Java с использованием JDK1.8.0_144, все приложения замерзают. Я не мог найти соответствующую ошибку в базе данных ошибок JDK. Единственное, что казалось бы отдаленно связанной это один, но наше приложение никогда не минимизируется, когда она замерзала. Я поймал его один раз в отладке, и кажется, что события все еще обрабатываются вторичным контуром (фокус события, событие движения мыши), но модальный диалог не может быть закрыты, и пользователь не может взаимодействовать с приложением. Очевидно, что моя первая мысль была, чтобы обновить версию JDK, но так как я мог только редко воспроизвести проблему, я не буду уверен, что, если он устраняет проблему или нет. Любой бы это случилось с ними, или у вас есть какие-либо предложения о том, как отлаживать или исправить? WARN [09: 41: 41482] - SwingCheckerTimer - StackTrace - АВТ-EventQueue-0, Id = 22,
Vlad Topala
1

голосов
1

ответ
57

Просмотры

проблемы выбора элементов JComboBox (в JMenu) Java Swing

Im возникли проблемы при выборе элементов JCombox здесь является GIF: Gif, который показывает именно то, что проблема здесь код, который вы можете проверить свой собственный, как спросил @UNKNOWN я удалить все, что не нужно, так что вы можете проверить, что у меня нет ошибки в консоли; код работает отлично, но ошибка комбо slection есть импорт javax.swing *. импорт java.awt *. общественный класс FORTEST расширяет JFrame {личного JTextArea txtArea = NULL; частный JComboBox cmbFontSize = NULL; частный JComboBox cmbFontFamily = NULL; государственный статическая сила основной (String [] арг) {SwingUtilities.invokeLater (новый Runnable () {@Override общественный недействительный запуск () {новый FORTEST ();}}); } Частный FORTEST () {INIT (); } общественного недействительными инициализации () {this.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE); this.setTitle ( "ДЛЯ ИСПЫТАНИЯ"); this.setLocationRelativeTo (нуль); this.setSize (850500); txtArea = новый JTextArea (); txtArea.setSize (830470); JScrollPane panScrollable = новый JScrollPane (txtArea); panScrollable.setSize (840480); this.add (panScrollable, BorderLayout.CENTER); JMenuBar jmbTop = новый JMenuBar (); JMenu modifica = новый JMenu ( "Modifica"); modifica.setFont (новый шрифт ( "Arial", Font.PLAIN, 15)); JMenu fontSettings = новый JMenu ( "Настройки шрифтов"); JMenuItem cmbFam = новый JMenuItem ( "семейство шрифтов"); cmbFontSize = новый JComboBox (); cmbFontFamily = новый JComboBox (); cmbFam.add (cmbFontFamily); fontSettings.add (cmbFam); // fontSettings.add (cmbFontSize); //fontSettings.add(cmbFontFamily); modifica.add (fontSettings); jmbTop.add (modifica); loadFontFamily (); loadFontSize (); this.setJMenuBar (jmbTop); this.setVisible (истина); } Частных недействительный loadFontFamily () {строка шрифты [] = GraphicsEnvironment.getLocalGraphicsEnvironment () getAvailableFontFamilyNames (). для (INT I = 0; я <fonts.length; я ++) {cmbFontFamily.addItem (шрифты [I]); }} Частный недействительным loadFontSize () {для (INT I = 10; я } Частных недействительный loadFontFamily () {строка шрифты [] = GraphicsEnvironment.getLocalGraphicsEnvironment () getAvailableFontFamilyNames (). для (INT I = 0; я <fonts.length; я ++) {cmbFontFamily.addItem (шрифты [I]); }} Частный недействительным loadFontSize () {для (INT I = 10; я } Частных недействительный loadFontFamily () {строка шрифты [] = GraphicsEnvironment.getLocalGraphicsEnvironment () getAvailableFontFamilyNames (). для (INT I = 0; я <fonts.length; я ++) {cmbFontFamily.addItem (шрифты [I]); }} Частный недействительным loadFontSize () {для (INT I = 10; я
Singh
1

голосов
1

ответ
258

Просмотры

Сброс игры петля / перезапуск игры Java Swing

Я работаю на Java игры Snake. Большая часть базовой функциональности делаются У Я пытаюсь добавить функцию перезагрузки, которая будет запускаться при нажатии кнопки ENTER, когда игра закончена. Все логики semms для работы, змея сбрасывает в исходное положение, яблоко получает новое случайное положение и т.д. Но по какой-то причине моих JPanels не перекрасить. Не могли бы вы, ребята, посмотрите и посмотреть, если вы можете понять, что я делаю неправильно. Я сделал снимок из моего кода с игровым циклом, функция сброс и т.д. Просто дайте мне знать, если вам нужно больше. / * * Основной класс, игра петля, KeyListener и т.д. * / / * * Вот мой метод запуска с игрой циклом, когда GameOver, будет больше змеи нет * обновление. * * / @Override общественности недействительным запуска () {// игра цикла в то время как (бег) {если (GameOver!) {Обновление (); } MainFrame.paint (); попробуйте {Thread.sleep (60); } Задвижка (InterruptedException е) {e.printStackTrace (); }}} / * * Метод KeyListener, когда ENTER нажимается вызов resetGame (). * / Если (key.getKeyCode () == KeyEvent.VK_ENTER && GameOver) {resetGame (); } / * * Метод resetGame где сбросить переменные, создать новую змею по умолчанию, * ясно JPanels и т.д. * / общественного недействительными resetGame () {оценка = 0; snake.clear (); // ясно ArrayList // .removAll () на обоих JPanels MainFrame.clear (); // поля GameOver = false; NewGame = TRUE; Направление = Direction.RIGHT; // создать по умолчанию змея змея = новый ArrayList (); Размер = 5; для (INT I = 0; г <размера; я ++) {snake.add (новый пункт ((размер - я - 1) * MainFrame.getTileSize (), 0)); } System.out.println (змеи); // создать яблоко и установить его в случайном месте яблоко = randomApple (); } / * * MainFrame расширяет JFrame * методы для перекрашивания и очистки JPanels * / государственной статической силы краски () {gamePanel.repaint (); sideHud.repaint (); } Государственной статической силы ясно () {gamePanel.removeAll (); sideHud.removeAll (); покрасить(); } Мои JPanels довольно проста. Я просто покрасить все в методе paintComponent с объектом Graphics2D. Это мое самое недавнее решение (которое не работает). Я также попытался, в результате чего игрового цикла, а затем вызов на бегу () снова в методе resetGame (), Я попытался создать новый главный объект, когда ENTER нажата, но ни один из них не работал. Заранее спасибо.
Alexander
1

голосов
0

ответ
75

Просмотры

JButton won't show text

Этот класс представляет собой кнопку панели пользовательского интерфейса, я создал, второй JButton с именем «btnNext» не отображает текст, однако первый JButton делает, почему это? импорт javax.swing *. импорт java.awt *. импорт java.awt.event.ActionEvent; импорт javax.swing.AbstractAction; общественный класс ButtonPanel расширяет JPanel {личного MainPanel mainPanel; // Кнопки частных JButton btnRunTheAlgorithm = новый JButton ( "Запуск алгоритма"); общественности статической JButton btnNext = новый JButton ( "Следующий шаг"); общественного ButtonPanel (MainPanel mainPanel) {this.mainPanel = mainPanel; this.setLayout (новый FlowLayout ()); this.add (btnRunTheAlgorithm); this.add (btnNext); this.btnRunTheAlgorithm.addActionListener (е -> {Алгоритм Основной = новый алгоритм (mainPanel); главное. Бежать(); }); this.btnNext.setAction (новый AbstractAction () {общественного недействительными actionPerformed (ActionEvent ае) {синхронизировано (btnNext) {btnNext.notify ();}}}); }} Кнопки отображаются на панели, как на изображении ниже: Кнопки: Я также не уверен, что AbstractAction работает, поэтому я полагаю, что может быть причиной текста не отображаются, но я понятия не имеют, почему, если это так ,
Emily
1

голосов
1

ответ
95

Просмотры

Качели перевода масштаба заказ неправильного монтажа изменения

Я нашел что-то странное, когда расщепление транслит операцию масштабирования вокруг одного с Java Swing. Может быть, я делаю что-то глупое, но я не знаю, где. В первой версии я центрировать изображение, масштабировать его, а затем перевести его в нужное положение. Во втором варианте я непосредственно масштабировать изображение, а затем перевести в нужном положение, компенсирующем имеющие ноны центрированного изображения. Оба раствора должны быть эквивалентны. Кроме того, это важно при рассмотрении вращения вокруг точки и движение в другом .. Я код, который делает это слишком ... но почему это не работает? Вот две версии кода. Они должны сделать то же самое, но они не являются. Вот скриншоты: Первый производит: Screenshot1 Второй производит: screenshot2 Я думаю, что эти две операции перевода в draw1 окружающих операцию масштаба должны быть эквивалентны шкале перевести операцию в draw2. Любое предложение? MCVE:. Импорт java.awt *; импорт java.awt.event *. импорт java.awt.geom *. импорт java.awt.image *. импорт javax.imageio.ImageIO; импорт javax.swing *. импорт java.net.URL; Открытый класс Астероид расширяет JComponent реализует ActionListener {общественность статического окончательного размера FRAME_SIZE = новое измерение (640, 480); общественные двойные х = 200; общественный двойной у = 200; радиус общественного INT = 40; частный AffineTransform bgTransfo; частный окончательный BufferedImage im2; частный JCheckBox draw1Check = новый JCheckBox ( "Draw 1", правда); Астероид () {BufferedImage IMG = NULL; попробуйте {IMG = ImageIO.read (новый URL ( "https: //i.stack. 480); если (draw1Check.isSelected ()) {draw1 (г); } Еще {draw2 (г); }} Общественного недействительными draw1 (Graphics2D г) {// Draw метод - рисует астероид двойной imWidth = im2.getWidth (); двойная imHeight = im2.getHeight (); двойная stretchx = (2,0 * радиус) / imWidth; двойная эластична = (2,0 * радиус) / imHeight; bgTransfo = новый AffineTransform (); // центрирования bgTransfo.translate (-imWidth / 2.0, -imHeight / 2.0); // масштабирование bgTransfo.scale (stretchx, эластичная); // перевод bgTransfo.translate (х / stretchx, г / эластична); // рисуем правильное положение g.setColor (Color.CYAN); g.fillOval ((INT) (х - радиус), (INT) (у - радиус), (INT) (2 * радиус), (INT) (2 * радиус)); // рисуем спрайт г. DrawImage (IM2, bgTransfo, это); } Общественного недействительными draw2 (Graphics2D г) {// Draw метод - рисует астероид двойной imWidth = im2.getWidth (); двойная imHeight = im2.getHeight (); двойная stretchx = (2,0 * радиус) / imWidth; двойная эластична = (2,0 * радиус) / imHeight; bgTransfo = новый AffineTransform (); // масштаб bgTransfo.scale (stretchx, эластична); // перевести и центр bgTransfo.translate ((х - радиус) / stretchx, (у - радиус) / эластична); Рисовать // правильное положение g.setColor (Color.CYAN); g.fillOval ((INT) (х - радиус), (INT) (у - радиус), (INT) (2 * радиус), (INT) (2 * радиус)); // рисуем спрайт g.drawImage (im2, bgTransfo, это); } @Override общественный недействительный actionPerformed (ActionEvent е) {перекрашивать (); }} этот); } Общественного недействительными draw2 (Graphics2D г) {// Draw метод - рисует астероид двойной imWidth = im2.getWidth (); двойная imHeight = im2.getHeight (); двойная stretchx = (2,0 * радиус) / imWidth; двойная эластична = (2,0 * радиус) / imHeight; bgTransfo = новый AffineTransform (); // масштаб bgTransfo.scale (stretchx, эластична); // перевести и центр bgTransfo.translate ((х - радиус) / stretchx, (у - радиус) / эластична); , // нарисовать правильную позицию g.setColor (Color.CYAN); g.fillOval ((INT) (х - радиус), (INT) (г - радиус), (INT) (2 * радиус), (INT) (2 * радиус)); // рисуем спрайт g.drawImage (im2, bgTransfo, это); } @Override общественный недействительный actionPerformed (ActionEvent е) {перекрасить (); }} этот); } Общественного недействительными draw2 (Graphics2D г) {// Draw метод - рисует астероид двойной imWidth = im2.getWidth (); двойная imHeight = im2.getHeight (); двойная stretchx = (2,0 * радиус) / imWidth; двойная эластична = (2,0 * радиус) / imHeight; bgTransfo = новый AffineTransform (); // масштаб bgTransfo.scale (stretchx, эластична); // перевести и центр bgTransfo.translate ((х - радиус) / stretchx, (у - радиус) / эластична); // рисуем правильное положение g.setColor (Color.CYAN); g.fillOval ((INT) (х - радиус), (INT) (у - радиус), (INT) (2 * радиус), (INT) (2 * радиус)); // рисуем спрайт g.drawImage (im2, bgTransfo, это); } @Override общественный недействительный actionPerformed (ActionEvent е) {перекрасить (); }} } Общественного недействительными draw2 (Graphics2D г) {// Draw метод - рисует астероид двойной imWidth = im2.getWidth (); двойная imHeight = im2.getHeight (); двойная stretchx = (2,0 * радиус) / imWidth; двойная эластична = (2,0 * радиус) / imHeight; bgTransfo = новый AffineTransform (); // масштаб bgTransfo.scale (stretchx, эластична); // перевести и центр bgTransfo.translate ((х - радиус) / stretchx, (у - радиус) / эластична); // рисуем правильное положение g.setColor (Color.CYAN); g.fillOval ((INT) (х - радиус), (INT) (у - радиус), (INT) (2 * радиус), (INT) (2 * радиус)); // рисуем спрайт g.drawImage (im2, bgTransfo, это); } @Override общественный недействительный actionPerformed (ActionEvent е) {перекрасить (); }} } Общественного недействительными draw2 (Graphics2D г) {// Draw метод - рисует астероид двойной imWidth = im2.getWidth (); двойная imHeight = im2.getHeight (); двойная stretchx = (2,0 * радиус) / imWidth; двойная эластична = (2,0 * радиус) / imHeight; bgTransfo = новый AffineTransform (); // масштаб bgTransfo.scale (stretchx, эластична); // перевести и центр bgTransfo.translate ((х - радиус) / stretchx, (у - радиус) / эластична); // рисуем правильное положение g.setColor (Color.CYAN); g.fillOval ((INT) (х - радиус), (INT) (у - радиус), (INT) (2 * радиус), (INT) (2 * радиус)); // рисуем спрайт g.drawImage (im2, bgTransfo, это); } @Override общественный недействительный actionPerformed (ActionEvent е) {перекрасить (); }} двойная stretchx = (2,0 * радиус) / imWidth; двойная эластична = (2,0 * радиус) / imHeight; bgTransfo = новый AffineTransform (); // масштаб bgTransfo.scale (stretchx, эластична); // перевести и центр bgTransfo.translate ((х - радиус) / stretchx, (у - радиус) / эластична); // рисуем правильное положение g.setColor (Color.CYAN); g.fillOval ((INT) (х - радиус), (INT) (у - радиус), (INT) (2 * радиус), (INT) (2 * радиус)); // рисуем спрайт g.drawImage (im2, bgTransfo, это); } @Override общественный недействительный actionPerformed (ActionEvent е) {перекрасить (); }} двойная stretchx = (2,0 * радиус) / imWidth; двойная эластична = (2,0 * радиус) / imHeight; bgTransfo = новый AffineTransform (); // масштаб bgTransfo.scale (stretchx, эластична); // перевести и центр bgTransfo.translate ((х - радиус) / stretchx, (у - радиус) / эластична); // рисуем правильное положение g.setColor (Color.CYAN); g.fillOval ((INT) (х - радиус), (INT) (у - радиус), (INT) (2 * радиус), (INT) (2 * радиус)); // рисуем спрайт g.drawImage (im2, bgTransfo, это); } @Override общественный недействительный actionPerformed (ActionEvent е) {перекрасить (); }} // перевести и центр bgTransfo.translate ((х - радиус) / stretchx, (у - радиус) / эластична); // рисуем правильное положение g.setColor (Color.CYAN); g.fillOval ((INT) (х - радиус), (INT) (у - радиус), (INT) (2 * радиус), (INT) (2 * радиус)); // рисуем спрайт g.drawImage (im2, bgTransfo, это); } @Override общественный недействительный actionPerformed (ActionEvent е) {перекрасить (); }} // перевести и центр bgTransfo.translate ((х - радиус) / stretchx, (у - радиус) / эластична); // рисуем правильное положение g.setColor (Color.CYAN); g.fillOval ((INT) (х - радиус), (INT) (у - радиус), (INT) (2 * радиус), (INT) (2 * радиус)); // рисуем спрайт g.drawImage (im2, bgTransfo, это); } @Override общественный недействительный actionPerformed (ActionEvent е) {перекрасить (); }}
Dimitri Ognibene
0

голосов
0

ответ
12

Просмотры

JPanel Призрак Штук в шахматной игре

поэтому я пишу шахматный графический интерфейс для класса следующего консольного варианта игры писаться. Я использую качели графических инструментов для этого, и я столкнулся с вопросом, где после каждого хода я делаю там, как правило, много призрачных изображений выскакивать. У меня есть картина ниже того, что я имею в виду: Здесь также Pastebin к коду для этого раздела: https://pastebin.com/Lj0Y4zFr
JackieClam
1

голосов
0

ответ
59

Просмотры

Как отображать отфильтрованные файлы в Java Swing?

Я использую следующий код, чтобы отфильтровать файлы в Java Swing (с помощью Java 8) UIManager.setLookAndFeel ( «javax.swing.plaf.metal.MetalLookAndFeel»); JFileChooser = Chooser новый JFileChooser (); chooser.setMultiSelectionEnabled (ложь); chooser.setControlButtonsAreShown (истина); chooser.setAcceptAllFileFilterUsed (ложь); CustomFileFilter cffOne = новый CustomFileFilter (нулевая, "Директория только", правда); CustomFileFilter cffTwo = новый CustomFileFilter ( "CAT файлы (* .vi)", ложные "VI."); CustomFileFilter cffThree = новый CustomFileFilter ( "HRRD Files (* .hrd)", ложный "хрд."); chooser.addChoosableFileFilter (cffOne); chooser.addChoosableFileFilter (cffTwo); chooser.addChoosableFileFilter (cffThree); chooser.setFileSelectionMode (JFileChooser.FILES_AND_DIRECTORIES); chooser.setDialogTitle (» если (в отставке == JFileChooser.APPROVE_OPTION) {// ..} Фильтр работает отлично. Теперь мой вопрос, когда выбран фильтр, мы можем просто отключить, не входящие в соответствующие файлы и отображать их в виде неактивны вместо прятать их? если (в отставке == JFileChooser.APPROVE_OPTION) {// ..} Фильтр работает отлично. Теперь мой вопрос, когда выбран фильтр, мы можем просто отключить, не входящие в соответствующие файлы и отображать их в виде неактивны вместо прятать их?
Pritam Banerjee
1

голосов
0

ответ
57

Просмотры

Swing window never opens in Eclipse

I am just getting started with using swing, and Java in general. I am going through the tutorial here. I am just copy-pasting the code into Eclipse. Running the program produces no errors, but no window pops up. After a second Eclipse says , just like it would when a program is complete. Eclipse appears to lose focus for a second when the program is run. To try to debug the issue, I stepped through the individual lines. I found that it stops on line 48: JFrame frame = new JFrame("FrameDemo");. I put System.out.println("Before"); and System.out.println("After"); around that line. Sure enough, only "Before" is printed to the console. I tried running directly from the command line with java (my program). When I ran it like this, the window popped up just fine. Both Before and After were printed. However, closing it sometimes causes a window to pop up that says "Java(TM) Platform SE Binary has stopped working." I am very confused as to why the program would work by command line, but not with Eclipse. I would expect that simply running the example programs would "just work". Any help you can provide is much appreciated! The relevant code: private static void createAndShowGUI() { //Create and set up the window. System.out.println("Before"); JFrame frame = new JFrame("FrameDemo"); System.out.println("After"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel emptyLabel = new JLabel(""); emptyLabel.setPreferredSize(new Dimension(175, 100)); frame.getContentPane().add(emptyLabel, BorderLayout.CENTER); //Display the window. frame.pack(); frame.setVisible(true); } public static void main(String[] args) { //Schedule a job for the event-dispatching thread: //creating and showing this application's GUI. javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { try { createAndShowGUI(); } catch (Exception e) { e.printStackTrace(); } } }); } JRE and Run Config settings:
pydude
1

голосов
0

ответ
42

Просмотры

Java Swing: Изменение JButton к кнопке изображений

Я пытался это в течение нескольких часов. Я хочу изменить каждого из компонентов JButton к кнопкам изображения (Они были радиокнопки, именно поэтому имена переменных не имеют смысла). Для петли внутри просто отображая все изображения под кнопку. Каждое изображение называется ОПЦИЯ1, option2 и т.д. Так что я пытаюсь сделать, это избавиться от для цикла и просто 10 кнопок с изображениями на них, которые вы можете нажать кнопку. Если кто-то может помочь мне понять, что то, что было бы здорово. Все, что я мог сделать, это есть кнопка, созданный с изображением, но на совершенно другом окне появляется кнопка. общественный класс JDialog2 распространяется JDialog {частного конечного JPanel ContentPanel = новый JPanel (); / ** * Создание диалога. * / Общественности (викторина викторина) JDialog2 {SetBounds (100, 100, 450, 600); getContentPane () setLayout (новый BorderLayout ()). contentPanel.setBorder (новый Пустая граница (5, 5, 5, 5)); getContentPane () добавить (ContentPanel, BorderLayout.CENTER). contentPanel.setLayout (нуль); JLabel lblNewLabel_1 = новый JLabel ( "2, Любимый предмет в Хогвартсе"); lblNewLabel_1.setFont (новый шрифт ( "Ариал", Font.PLAIN, 14)); lblNewLabel_1.setBounds (94, 10, 248, 15); contentPanel.add (lblNewLabel_1); ButtonGroup btGroup = новый ButtonGroup (); для (INT I = 1; я ButtonGroup btGroup = новый ButtonGroup (); для (INT I = 1; я ButtonGroup btGroup = новый ButtonGroup (); для (INT I = 1; я
user7520940
1

голосов
1

ответ
120

Просмотры

Изменение украшения стиль свинг Java JFrame

Я пытаюсь изменить украшения стиль JFrame. Я попытался следующий код. // ... статической силы основных (String [] арг) {EventQueue.invokeLater (() -> {JFrame.setDefaultLookAndFeelDecorated (истина); JFrame кадр = новый JFrame ( "Это название"); frame.setSize (500, 600); frame.setVisible (истина);}); } Это меняет украшения стиля JFrame, но это работает только, если внешний вид и устанавливаются на металл. Если внешний вид и изменяется где-то в коде в время выполнения где-то в коде, как: для (UIManager.LookAndFeelInfo LAF: UIManager.getInstalledLookAndFeels ()) {если ( «Нимб» .equals (laf.getName ()) {UIManager.setLookAndFeel (laf.getClassName ()); SwingUtilities.updateComponentTreeUI (кадр);}} Затем, выглядеть и чувствовать себя переодеться, но украшение кадра получить исчезло. В результате, я не в состоянии двигаться, изменять размер, максимизировать, минимизировать и закрыть рамку. Вопрос 1: Можно ли решить эту проблему? Вопрос 2: Можно ли изменить украшение стиля JFrame, чтобы сделать выглядеть визуальный заголовок студия?
Mohit Agrawal
1

голосов
0

ответ
21

Просмотры

mousePressed не будет реагировать на JPanel

Я пытаюсь написать код, когда пользователь щелкает один раз, маленькая точка появляется, дважды линия формируется из первого и второго щелчка, а третий образует треугольник из всех кликов, и нажав снова перезагружается с точкой. В настоящее время я могу получить JFrame и JPanel, чтобы открыть, но щелчок ничего не делает. Я добавил в System.out.print команду, чтобы посмотреть, если мой метод mousePressed когда-нибудь бежал, но он никогда не делает. Вот мой код в настоящее время: импорт java.awt.Graphics; импорт java.awt.Point; импорт java.awt.event.MouseEvent; импорт java.awt.event.MouseListener; импорт javax.swing.JComponent; импорт javax.swing.JFrame; импорт javax.swing.JPanel; общественный класс TriangleClicker расширяет JFrame {частного окончательной ширина ИНТА = 700; частная окончательная ИНТ высота = 800; частная панель JPanel; частный MouseListener слушатель; частное ИНТ p1X; частное ИНТ P1Y; частное ИНТ p2x; частное ИНТ P2Y; частное ИНТ p3x; частное ИНТ p3y; частный граф INT = 0; частный график г; общественный TriangleClicker () {this.setSize (ширина, высота); this.add (createPanel ()); Слушатель = новый MousePressListener (); } Общественного JPanel createPanel () {панель = новые JPanel (); panel.setSize (ширина, высота); вернуться панель; } Класс MousePressListener расширяет JComponent реализует MouseListener {общественного недействительными drawLine1 (Графика г) {g.drawLine (p1X, P1Y, p1X, P1Y); } Общественного недействительными drawLine2 (графика г) {g.drawLine (p1X, P1Y, p2x, P2Y); } Общественного недействительными drawLine3 (графика г) {g.drawLine (p3x, p3y, p1X, P1Y); g.drawLine (p3x, p3y, p2x, P2Y); } @Override общественный недействительный mouseClicked (MouseEvent е) {} @Override общественный недействительный mouseEntered (MouseEvent е) {} @Override общественный недействительный mouseExited (MouseEvent е) {} общественный недействительный mousePressed (MouseEvent е) {если (кол == 0) { p1X = e.getX (); P1Y = e.getY (); drawLine1 (г); подсчитывать ++; System.out.println ( "1"); } Иначе, если (кол == 1) {p2x = e.getX (); P2Y = e.getY (); drawLine2 (г); подсчитывать ++; } Иначе, если (кол == 2) {p3x = e.getX (); p3y = e.getY (); drawLine3 (г); подсчитывать ++; } Иначе, если (кол == 4) {g.clearRect (0, 0, ширина, высота); p1X = e.getX (); P1Y = e.getY (); p2x = 0; P2Y = 0; p3x = 0; p3y = 0; drawLine1 (г); кол = 1; }} @Override общественного недействительными mouseReleased (MouseEvent е) {}}} Любая помощь будет принята с благодарностью. Благодарю.
Keegan Moore
1

голосов
1

ответ
143

Просмотры

Как создать опрокидывание или парить эффект строк в JTable?

В моем приложении, я хотел бы создать опрокидывание эффект с рядами в JTable. Например, когда мышь попадает в строку, цвет фона этой строки изменится; наоборот, цвет этой строки будет вернуться к нормальной, когда мышь покидает эту строку. Я уже говорил много статей. Я получил один ответ, но класс, расширяющий JTable и мой стол в JInternalFrame так что мой класс расширяет JInternalFrame. Вот мой код общественного класса UpdateAdmin расширяет JInternalFrame {государственной статической JTable таблицы; частный JScrollPane ScrollPane; общественности статической строки rowUserId; частная статические строки photoUrl; частное ИНТ rollOverRowIndex = -1; / ** * Запустить приложение. * / общественности статической силы основных (String [] арг) {SwingUtilities. invokeLater (новый Runnable () {общественного недействительными запуска () {попробуйте {UpdateAdmin кадр = новый UpdateAdmin (); frame.setVisible (истина);} поймать (Exception е) {e.printStackTrace ();}}}); } Общественных UpdateAdmin () {addInternalFrameListener (новый InternalFrameAdapter () {@Override общественного недействительными internalFrameOpened (InternalFrameEvent arg0) {updateTable ();}}); . GetContentPane () setBackground (новый цвет (144, 202, 249)); setClosable (истина); setResizable (истина); setMaximizable (истина); setIconifiable (истина); SETTITLE ( "Просмотр администратор"); SetBounds (100, 100, 1200, 571); getContentPane () setLayout (нуль). JLabel lblviewUsers = новый JLabel ( "Просмотр пользователей"); lblviewUsers.setBounds (10, 25, 188, 23); lblviewUsers.setFont (новый шрифт ( "Tahoma", Font.PLAIN, 18)); . GetContentPane () добавить (lblviewUsers); . Размер тусклый = Toolkit.getDefaultToolkit () getScreenSize (); this.setLocation (. dim.width / 2-this.getSize () ширина / 2, dim.height / 2-this.getSize () высота / 2.); } Защищены недействительным updateTable () {попробуйте {Class.forName ( "com.mysql.jdbc.Driver"); Подключение кон = DriverManager.getConnection ( "JDBC: MySQL: // локальный: 3306 / librarymanagement", "корень", "santosh123"); PreparedStatement пс = con.prepareStatement ( "выберите UID, фото, имя пользователя, ПгвЬЫате, LastName, электронная почта, Mob_no, DOB, адрес, пол, TableColumn СК2 = table.getColumn ( "Удалить"); tc2.setMinWidth (70); tc2.setMaxWidth (70); TableColumn ТС3 = table.getColumn ( "UID"); tc3.setMinWidth (65); tc3.setMaxWidth (65); / * Размер де = новое измерение (5,1); table.setIntercellSpacing (новое измерение (дм)); * / table.addMouseListener (новый JTableButtonMouseListener (таблица)); //table.getColumn("UID").setCellRenderer(new MyCellRenderer ()); table.addMouseMotionListener (новый MouseAdapter () {общественного недействительными mouseMoved (MouseEvent е) {точка р = e.getPoint (); hoveredRow = table.rowAtPoint (р); hoveredColumn = table.columnAtPoint (р); table.repaint (); } Общественного недействительными mouseExited (MouseEvent е) {hoveredRow = hoveredColumn = -1; table.repaint (); }}); JTableHeader заголовок = table.getTableHeader (); header.setFont (новый шрифт ( "Tahoma", Font.BOLD, 14)); addComponentListener (новый ComponentAdapter () {@Override общественного недействительными componentResized (ComponentEvent arg0) {scrollPane.setBounds (10, 80, getContentPane () GetWidth () - 20, 400);.}}); TableCellRenderer buttonRenderer = новый JTableButtonRenderer (); table.getColumn ( "Обновить") setCellRenderer (buttonRenderer). table.getColumn ( "Удалить") setCellRenderer (buttonRenderer). Окончательный TableColumnModel columnModel = table.getColumnModel (); для (INT столбца = 0; колонка <table.getColumnCount (); колонка ++) {INT ширина = 15; // Минимальная ширина (интермедиат строка = 0; строка <table.getRowCount (); строка ++) {TableCellRenderer рендерер = table.getCellRenderer (строка, столбец); Компонент комп = table.prepareRenderer (рендерер, строка, столбец); ширина = Math.max (comp.getPreferredSize () ширина +1, ширина.); } Если (ширина> 300) Ширина = 300; columnModel.getColumn (колонка) .setPreferredWidth (ширина); } DefaultTableCellRenderer centerRenderer = новый DefaultTableCellRenderer (); centerRenderer.setHorizontalAlignment (JLabel.CENTER); table.setDefaultRenderer (String.class, centerRenderer); //centerRenderer.setHorizontalTextPosition(DefaultTableCellRenderer.CENTER); / * DefaultTableCellRenderer рендерер = новый DefaultTableCellRenderer () {@Override общественный компонент getTableCellRendererComponent (JTable arg0, арг1 Объект, логическое арг2, булево arg3, Int arg4, Int Arg5) {Компонент tableCellRendererComponent = super.getTableCellRendererComponent (arg0, арг1, арг2, arg3, arg4, Arg5); INT ALIGN = DefaultTableCellRenderer.LEFT; если (выравнивание == DefaultTableCellRenderer.LEFT) {выравнивание = DefaultTableCellRenderer.CENTER; } ((DefaultTableCellRenderer) tableCellRendererComponent). setHorizontalAlignment (выравнивание); вернуться tableCellRendererComponent; }}; для (INT I = 0; г <rs.getMetaData () getColumnCount ();. я ++) {table.getColumnModel () GetColumn (+ I) .setCellRenderer (рендерер). } * / ScrollPane = новый JScrollPane (таблица); //scrollPane.setBounds(10, 80, getContentPane () GetWidth () - 20, table.getRowHeight () * (table.getRowCount () + 1)). scrollPane.setBounds (10, 80, 1570, 400); Размер maxScrollPaneSize = новое измерение (getContentPane () GetWidth () - 20, 400.); scrollPane.setMaximumSize (maxScrollPaneSize); scrollPane.setBackground (новый цвет (144, 202, 249)); scrollPane.setBorder (BorderFactory.createLineBorder (Color.BLACK, 1, правда)); scrollPane.setHorizontalScrollBarPolicy (JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPane.setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); getContentPane () добавить (ScrollPane). // Закрытие rs.Close соединения (); ps.close (); con.close (); } Задвижка (Исключение е) {e.printStackTrace (); }} Как можно применить выше решение ссылки на мой стол? } Задвижка (Исключение е) {e.printStackTrace (); }} Как можно применить выше решение ссылки на мой стол? } Задвижка (Исключение е) {e.printStackTrace (); }} Как можно применить выше решение ссылки на мой стол?
Rahul patil
1

голосов
0

ответ
33

Просмотры

How to implement MouseMotionListener in Java Swing for list of objects to follow mouse?

My question is how can i implement the MouseMotionListener for list of objects can follow my mouse? I guess, I couldn't get the idea so far. I tried to do that my second part of the worm will follow the head. So it will become like a train. But in first second seems like Ok but all objects suddenly converge to a point. Basically my code is above; My Worm.class is like that; public class Worm { Random rd = new Random(); int xWorm; int yWorm; int Speed = 100; int size = 10; // default Worm() { xWorm = rd.nextInt(250); yWorm = rd.nextInt(250); } Worm(int xNew, int yNew){ xWorm = xNew; yWorm = yNew; } public int getxWorm() { return xWorm; } public void setxWorm(int xWorm) { this.xWorm = xWorm; } public int getyWorm() { return yWorm; } public void setyWorm(int yWorm) { this.yWorm = yWorm; } public int getSpeed() { return Speed; } public void setSpeed(int speed) { Speed = speed; } public void move (int dx, int dy) { xWorm+=dx; yWorm+=dy; } public void setPosition(int x,int y) { this.xWorm = x; this.yWorm = y; } public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; Ellipse2D Ellipse= new Ellipse2D.Double(xWorm,yWorm,10,10); g2.setColor(Color.GREEN); g2.draw(Ellipse); g2.fill(Ellipse); // g.fillOval(this.xWorm, this.yWorm, 30, 30); } public boolean iscollision(Food f) { Rectangle2D RectangleforFood = new Rectangle2D.Double(f.xFood,f.yFood,5,5); Rectangle2D RectangleforWormHead = new Rectangle2D.Double(this.xWorm,this.yWorm,10,10); if (RectangleforWormHead.intersects(RectangleforFood)) { return true; } else { return false; } } } and my Panel.class the tracker function like that ; public void createlongworm() { for(int i = 0; i < 100 ; i++) { wormBody.add(new Worm(wormBody.get(i).xWorm+10,wormBody.get(i).yWorm)); }} public void tracker(ArrayList TracktheWorm) { for(int i = 0; i < TracktheWorm.size()-1 ; i++) { TracktheWorm.get(i+1).xWorm = TracktheWorm.get(i).xWorm; TracktheWorm.get(i+1).yWorm = TracktheWorm.get(i).yWorm; } repaint(); }
-1

голосов
0

ответ
18

Просмотры

Как я позиция JButtons и JLabels внутри JPanel?

Так что в моей JFrame, как у меня есть фоновое изображение, чтобы добавить больше компонентов Im добавляя их в отдельных JPanel, добавляют .Отель JButton и JLabel компоненты, но они получают совершенно фиксируется в центре JPanel, и я не могу положение или изменения ширины / высоты с помощью SetBounds (интермедиат, Int, Int, Int) метод. Единственный способ, которым они переставить себя, если я постоянно меняющиеся размеры самих панелей.
Rocker96
1

голосов
0

ответ
45

Просмотры

Изменение размера JPanels - 2-я панель не будет изменять размеры, чтобы соответствовать кадр

У меня есть один JFrame и несколько компонентов JPanel во внешних классах. Первый класс расширяет JFrame, второй класс расширяет JPanel (я хотел бы использовать много классов панели) При запуске приложения изменения размера хорошо работает, и когда я иду на 2 класса и добавить эту панель на 1 кадр класса изменения размера работу, а также. Проблема возникает, когда я нажмите кнопку (во втором классе) обратно в окно. Затем панель с 1 класса не заполняет к раме и не реагирует на изменение размера кадра. Пример IMG: первый класс - второй класс (изменение размера окна) - первый класс (без заливки в JFrame) Это код (проект в NetBeans) пакет okienka; импорт java.awt.Dimension; общественный класс Window расширяет javax.swing.JFrame {общественной недействительная ShowPanel () {jPanel1.setVisible (истина); } / ** * Создает новый вид Okienka * / общественное окно () {initComponents (); } / ** * Этот метод вызывается из конструктора, чтобы инициализировать форму. * ВНИМАНИЕ: Не изменяйте этот код. Содержание этого метода всегда * регенерируется с помощью редактора. * / @SuppressWarnings ( "непроверенный") // частного недействительный initComponents () {jPanel1 = новый javax.swing.JPanel (); jLabel4 = новый javax.swing.JLabel (); jLabel5 = новый javax.swing.JLabel (); jLabel6 = новый javax.swing.JLabel (); jScrollPane1 = новый javax.swing.JScrollPane (); jTable1 = новый javax.swing.JTable (); jPanel2 = новый javax.swing.JPanel (); btnOtherPanel = новый javax.swing.JButton (); btnBack = новый javax.swing.JButton (); setDefaultCloseOperation (javax.swing.WindowConstants.EXIT_ON_CLOSE); setBackground (новый java.awt.Color (255, 255, 51)); jLabel4.setText ( "jLabel4"); jLabel5.setText ( "jLabel5"); jLabel6.setHorizontalAlignment (javax.swing.SwingConstants.RIGHT); jLabel6.setText ( "jLabel6"); jTable1.setModel (новый javax.swing.table.DefaultTableModel (новый объект [] [] {{NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}}, новая строка [] { "Название 1", "Заголовок 2", "Заголовок 3", "Заголовок 4"})); jScrollPane1.setViewportView (jTable1); btnOtherPanel.setText ( "Другие панели"); btnOtherPanel.addActionListener (новый java.awt.event.ActionListener () {общественного недействительными actionPerformed (java.awt.event.ActionEvent ЭВТ) {btnOtherPanelActionPerformed (EVT);}}); btnBack.setText ( "Назад"); javax.swing.GroupLayout jPanel2Layout = новый javax.swing.GroupLayout (jPanel2); jPanel2.setLayout (jPanel2Layout); jPanel2Layout.setHorizontalGroup (jPanel2Layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING) .addGroup (jPanel2Layout.createSequentialGroup () .addContainerGap () .addComponent (btnOtherPanel) .addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax. swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent (btnBack) .addContainerGap ())); jPanel2Layout.setVerticalGroup (jPanel2Layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING) .addGroup (jPanel2Layout.createSequentialGroup () .addGap (6, 6, 6). addGroup (jPanel2Layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE) .addComponent (btnOtherPanel) .addComponent (btnBack)) .addGap (6, 6, 6))); javax.swing.GroupLayout jPanel1Layout = новый javax.swing.GroupLayout (jPanel1); jPanel1.setLayout (jPanel1Layout); jPanel1Layout.setHorizontalGroup (jPanel1Layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING) .addGroup (jPanel1Layout.createSequentialGroup () .addContainerGap () .addGroup (jPanel1Layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING) .addComponent ( jScrollPane1) .addComponent (jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup (jPanel1Layout. createSequentialGroup () .addComponent (jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 513, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE ) .addComponent (jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent (jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ) .addContainerGap ())); jPanel1Layout.setVerticalGroup (jPanel1Layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING) .addGroup (jPanel1Layout.createSequentialGroup () .addContainerGap () .addComponent (jLabel4). addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup (jPanel1Layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE) .addComponent (jLabel5) .addComponent (jLabel6)) .addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement .RELATED) .addComponent (jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 198, Short.MAX_VALUE) .addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent (jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax. swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap (10, 10, 10))); getContentPane () добавить (jPanel1, java.awt.BorderLayout.CENTER). упаковка (); } // частная пустота btnOtherPanelActionPerformed (Java. awt.event.ActionEvent ЭВТ) {OtherPanel оп = новые OtherPanel (это); op.setPreferredSize (новое измерение (this.getWidth (), this.getHeight ())); добавить (ор); jPanel1.setVisible (ложь); } / ** * @param арг аргументы командной строки * / общественности статической силы основных (String ARGS []) {/ * Установить Nimbus внешний вид * / // / * Если Nimbus (введен в Java SE 6) не является доступно, оставайтесь с внешним видом по умолчанию. * Более подробную информацию см http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html * / попробовать {для (javax.swing.UIManager.LookAndFeelInfo нформация: javax.swing.UIManager.getInstalledLookAndFeels ()) {если ( "Нимб" .equals (info.getName ())) {javax.swing.UIManager. setLookAndFeel (info.getClassName ()); перерыв; }}} Задвижка (ClassNotFoundException ех) {java.util.logging.Logger.getLogger (Window.class.getName ()) войти (java.util.logging.Level.SEVERE, нулевой, ех). } Задвижка (InstantiationException ех) {java.util.logging.Logger.getLogger (Window.class.getName ()) журнал (java.util.logging.Level.SEVERE, нулевой, ех). } Задвижка (IllegalAccessException ех) {java.util.logging.Logger.getLogger (Window.class.getName ()) журнал (java.util.logging.Level.SEVERE, нулевой, ех). } Задвижка (javax.swing.UnsupportedLookAndFeelException ех) {java.util.logging.Logger.getLogger (Window.class.getName ()) журнал (java.util.logging.Level.SEVERE, нулевой, ех). } // // / * Создание и отображение формы * / java.awt.EventQueue. invokeLater (новый Runnable () {общественного недействительными запуска () {новое окно () SetVisible (истина);.}}); } // Переменные декларации - не изменять личное javax.swing.JButton btnBack; частный javax.swing.JButton btnOtherPanel; частный javax.swing.JLabel jLabel4; частный javax.swing.JLabel jLabel5; частный javax.swing.JLabel jLabel6; частный статический javax.swing.JPanel jPanel1; частный javax.swing.JPanel jPanel2; частный javax.swing.JScrollPane jScrollPane1; частный javax.swing.JTable jTable1; } И второй пакет класса okienka; общественный класс OtherPanel расширяет javax.swing.JPanel {личного окно ш = NULL; общественного OtherPanel (Окно ш) {this.w = ш; initComponents (); SetVisible (истина); } / ** * Этот метод вызывается из конструктора, чтобы инициализировать форму. * ВНИМАНИЕ: Не изменяйте этот код. Содержание этого метода всегда * регенерируется с помощью редактора. * / @SuppressWarnings ( "непроверенный") // частного недействительный initComponents () {jLabel1 = новый javax.swing.JLabel (); jLabel2 = новый javax.swing.JLabel (); jScrollPane1 = новый javax.swing.JScrollPane (); jTable1 = новый javax.swing.JTable (); jPanel1 = новый javax.swing.JPanel (); btn2 = новый javax.swing.JButton (); btn1 = новый javax.swing.JButton (); btnBackToWindow = новый javax.swing.JButton (); jLabel1.setText ( "jLabel1"); jLabel2.setHorizontalAlignment (javax.swing.SwingConstants.RIGHT); jLabel2.setText ( "jLabel2"); jTable1.setModel (новый javax.swing.table.DefaultTableModel (новый объект [] [] {{NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, нуль}, {NULL, NULL, NULL, NULL}, {NULL, NULL, NULL, NULL}}, новый строка [] { "Название 1", "Заголовок 2", "Заголовок 3", "Заголовок 4"}) ); jScrollPane1.setViewportView (jTable1); btn2.setText ( "Кнопка 2"); btn1.setText ( "Кнопка 1"); btnBackToWindow.setText ( "Назад в окно"); btnBackToWindow.addActionListener (новый java.awt.event.ActionListener () {общественного недействительными actionPerformed (java.awt.event.ActionEvent ЭВТ) {btnBackToWindowActionPerformed (EVT);}}); javax.swing.GroupLayout jPanel1Layout = новый javax.swing.GroupLayout (jPanel1); jPanel1.setLayout (jPanel1Layout); jPanel1Layout.setHorizontalGroup (jPanel1Layout.createParallelGroup (javax.swing.GroupLayout. Alignment.LEADING) .addGroup (javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup () .addContainerGap () .addComponent (btn1) .addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent (btn2). addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent (btnBackToWindow) .addContainerGap ())); jPanel1Layout.setVerticalGroup (jPanel1Layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING) .addGroup (javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup () .addGap (6, 6, 6) .addGroup (jPanel1Layout. createParallelGroup (javax.swing.GroupLayout.Alignment. ИСХОДНЫЕ) .addComponent (btn2) .addComponent (btn1) .addComponent (btnBackToWindow)) .addGap (6, 6, 6))); javax.swing.GroupLayout макет = новый javax.swing.GroupLayout (это); this.setLayout (макет); layout.setHorizontalGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING) .addGroup (layout.createSequentialGroup () .addContainerGap () .addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING) .addGroup ( layout.createSequentialGroup () .addComponent (jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 238, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent (jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent (jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 602, Short.MAX_VALUE) .addComponent ( jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, 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 ( jLabel1) .addComponent (jLabel2)) .addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement. СВЯЗАННЫЕ) .addComponent (jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 250, Short.MAX_VALUE) .addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent (jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing .GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap (10, 10, 10))); } // частная пустота btnBackToWindowActionPerformed (java.awt.event.ActionEvent ЭВТ) {w.showPanel (); удали это); this.setVisible (ложь); } // Переменные декларации - не изменять личное javax.swing.JButton btn1; частный javax.swing.JButton btn2; частный javax.swing.JButton btnBackToWindow; частный javax.swing. JLabel jLabel1; частный javax.swing.JLabel jLabel2; частный javax.swing.JPanel jPanel1; частный javax.swing.JScrollPane jScrollPane1; частный javax.swing.JTable jTable1; }
Przemo
1

голосов
0

ответ
133

Просмотры

JGraphx как экспортировать SVG файл из графика

Я использую JGraphx, и я хочу поставить на экспорт график в файл SVG. Я попытался документ Document = (Документ) mxCellRenderer.createSvgDocument (safetyTreeGraph, нуль, 1, Color.white, нуль) ;, но я не знаю, как вывести, что SVG документ локальных. Так что я должен делать дальше?
lution
1

голосов
0

ответ
26

Просмотры

Мой код не выполняется на старте

Мне нужно сделать после того, как формулы апплет начал, так что я стараюсь сделать следующий: открытый класс SearchIdeaApplet расширяет JApplet {личное JPanel mRootPanel; частный JButton mPrevButton; частный JButton mNextButton; частный JButton mUpdateButton; частный JPanel mPlotPanel; частный JPanel mFormulaPanel; частный недействительный drawFormulas () {формула TeXFormula = новый TeXFormula ( "х ^ 2 + 3 * у ^ 2"); // вынести формулу в иконку одного и того же размера, что и формулы. Texicon значок = формула .createTeXIcon (TeXConstants.STYLE_DISPLAY, 20); icon.setInsets (новые вставки (5, 5, 5, 5)); // теперь создать действительное изображение визуализируемого уравнения BufferedImage изображения = новый BufferedImage (icon.getIconWidth (), icon.getIconHeight (), BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = image.createGraphics (); g2.setColor (Color.white); g2.fillRect (0, 0, icon.getIconWidth (), icon.getIconHeight ()); JLabel JL = новый JLabel (); jl.setForeground (новый цвет (0, 0, 0)); icon.paintIcon (JL, д2, 0, 0); // теперь нарисовать на экране графики г = mFormulaPanel.getGraphics (); g.drawImage (изображение, 0,0, NULL); } @Override общественного недействительными Init () {попробуйте {SwingUtilities.invokeAndWait (это :: initSwing); } Задвижка (InterruptedException | InvocationTargetException е) {e.printStackTrace (); }} Частная пустота onUpdateButtonClick (ActionEvent событие) {drawFormulas (); } Частная пустота initSwing () {setContentPane (mRootPanel); drawFormulas (); // Это не работает mUpdateButton. addActionListener (это :: onUpdateButtonClick); }} Но drawFormulas () вызов в initSwing () не имеет никакого эффекта. Но если я нажимаю mUpdateButton мои формулы показаны. Как ждать, когда графический интерфейс будет готов рисовать формулы?
Шах
1

голосов
0

ответ
36

Просмотры

Использование Action / Item Слушатель с JComboBox

Я пытался сделать слушатель (я не уверен, должен ли я с помощью ItemListener или ActionListener) реагирует на изменения в JComboBox путем изменений JLabel изображения рядом с окном. Я попытался определить метод actionPerformed в конструкторе класса под addActionListener вызова на поле со списком, а также вне конструктора, и actionPerformed кажется, никогда не выполняется. Я добавил Println к каждому, чтобы проверить, является ли этот метод действительно работает, когда я выбираю элемент в окне, но ни один, кажется, выходное что-нибудь, что приводит меня полагать, метод actionPerformed не выполняется по каким-то причинам. Много различных ответов в другом месте определили actionListeners и actionPerformed в нескольких различных местах, таких как отдельный класс или в объявлении переменной экземпляра. }} SelectFrame.revalidate (); selectFrame.repaint (); }}); } CreateUI (); } Общественного недействительными createUI () {// строительные элементы графического интерфейса и отображения для (INT I = 0; я <6; я ++) {party1.add (новый JComboBox ()); party2.add (новый JComboBox ()); } Для (INT I = 0; г <6; я ++) {party1Image.add (новый JLabel (новый ImageIcon ()) "\\ разреш \\ sprites_small \\ 0.png."); party2Image.add (новый JLabel (новый ImageIcon ( "\\ Рез \\ sprites_small \\ 0.png."))); } // элементы здания GUI и отображения} // комментарии, чтобы убедиться, что существование множества методов не является проблематичным / * общественности недействительным actionPerformed (ActionEvent е) {System.out.println ( «Действие»); } * / Государственной статической силы основных (String [] арг) бросает IOException {новый MainBattle (); }}
lumpman2
1

голосов
1

ответ
192

Просмотры

Установка шрифта по умолчанию свинг приложения один раз, даже даже если новый текст рисуется

Я использовал ответ Ромена Hippeau в. Для того, чтобы установить шрифт по умолчанию приложения, когда он построен. государственной статической силы setUIFont (javax.swing.plaf.FontUIResource е) {ключи java.util.Enumeration = UIManager.getDefaults () клавиши (). в то время как (keys.hasMoreElements ()) {ключ объекта = keys.nextElement (); Значение объекта = UIManager.get (ключ); если (значение InstanceOf javax.swing.plaf.FontUIResource) UIManager.put (ключ, е); } А потом называть его: setUIFont (новые javax.swing.plaf.FontUIResource ( "Санс", Font.PLAIN, 24)); Тем не менее, когда новый текст написан для приложения Swing: Т.е. JTextArea Textarea = новый JTextArea (); onSomeEventHappening () {textArea.setText ( "Привет мир"); } Привет, мир появляется в стандартном свинге шрифте, тогда как все мои остальные элементы остаются в шрифте, я хочу все, чтобы остаться в. Есть ли способ, чтобы убедиться, что все новый текст добавляется к приложению, не изменил его шрифт. Выше показан пример этого, слово «ФУТБОЛ» уже будет записан в его поле со списком и, следовательно, появляется с обычным шрифтом Свинг, в то время как моя кнопка «Создать одну ссылку» появляется в шрифте я настроил. Ниже приведена копия и вставьте пример, если нажать на кнопку, несмотря на настройки шрифта выше, этикетка еще в Качели оригинальный стиль:. Импорт javax.swing *; импорт java.awt *. импорт java.awt.event.ActionEvent; импорт java.awt.event.ActionListener; Тест общественного класс расширяет JFrame {личное статический конечный ИНТ ШИРИНА = 1000; частный статический окончательный ИНТ ВЫСОТА = 700; частный JTextArea TEXTAREA = новый JTextArea (); государственной статической силы setUIFont (javax.swing.plaf.FontUIResource е) {ключи java.util.Enumeration = UIManager.getDefaults () клавиши (). в то время как (keys.hasMoreElements ()) {ключ объекта = keys.nextElement (); Значение объекта = UIManager.get (ключ); если (значение InstanceOf javax.swing.plaf.FontUIResource) UIManager.put (ключ, е); }} Публичного тестирования () {инициализации (); } Окончательного ActionListener ButtonClick = новый ActionListener () {@Override общественный недействительный actionPerformed (ActionEvent е) {textArea.setText ( "новый текст"); }}; общественного недействительными инициализации () {новый JFrame (); SetBounds (100, 100, 450, 300); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); setLayout (новый GridLayout (1,2)); setUIFont (новый javax.swing.plaf.FontUIResource ( "Санс", Font.PLAIN, 24)); Кнопка JButton = новый JButton ( "тест"); button.addActionListener (ButtonClick); this.add (кнопка); this.add (Textarea); SetVisible (истина); } государственной статической силы основных (String []) {арг тест test1 = новое испытание (); }}
Alex Yates
1

голосов
0

ответ
57

Просмотры

Java g.drawString() calls causing very slow initialisation

Следующий код обычно дает выход около 1500-2000ms, которая слишком долго, чтобы просто нарисовать строку в JFrame. государственной статической силы основных (String [] арг) {CustomFrame кадр = новый CustomFrame (); frame.setVisible (истина); } Класс CustomFrame расширяет JFrame {общественного CustomFrame () {супер (); setDefaultCloseOperation (WindowConstants.EXIT_ON_CLOSE); setPreferredSize (новое измерение (300, 300)); упаковка (); } @Override общественной недействительная краска (график г) {super.paint (г); длинные S = System.currentTimeMillis (); g.drawString ( "Привет", 50, 50); System.out.printf ( "Draw время:% д.м.н. \ п", (System.currentTimeMillis () - ы)); } Кроме того, когда код выполняется, окно нагрузки сразу, но она будет принимать 1500-2000ms до появления текста. То же проблема возникает для любых вызовов, связанных с / шрифта текста, в том числе JButtons с текстовыми метками. Даже эта линия: System.out.println (. G.getFont () ToString ()); будет приводить к снижению. Если добавить второй шнурок вызова нет паузы между первой строкой втягивания и вторым. Это приводит меня к мысли, что это проблема с загрузкой библиотек на первой итерации, хотя я мог бы совершенно неправильно Любые идеи относительно того, что может быть причиной этого /, как это исправить? Были озадачен на некоторое время. Приветствия. хотя я мог бы совершенно неправильно Любые идеи относительно того, что может быть причиной этого /, как это исправить? Были озадачен на некоторое время. Приветствия. хотя я мог бы совершенно неправильно Любые идеи относительно того, что может быть причиной этого /, как это исправить? Были озадачен на некоторое время. Приветствия.
max batten
1

голосов
1

ответ
59

Просмотры

JAVA Snake Game Error. Змея останавливается после 3 шагов

Это мой первый запрос здесь. Я строю змея игра, которая работает отлично, но тело движется только три шага и паузы. Ниже приведен код для игры, у меня есть основной метод, но его абсолютно нормально. Изображение: перед нажатием стрелка вправо ........... изображение: после нажатия стрелка вправо Основной метод: общественного класса змейки {государственной статической силы основных (String [] арг) {Геймплей gplay = новый геймплей (); Фрейму OBJ = новый JFrame (); obj.setTitle ( "Супер змейка"); obj.setBounds (10, 10, 905, 700); obj.setBackground (Color.getHSBColor (192, 68, 66)); obj.setResizable (ложь); obj.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); obj.add (gplay); obj.setVisible (истина); }} Игровой код: общественный класс Геймплей расширяет JPanel реализует KeyListener, ActionListener {частное ИНТ [] snakeXlength = новый INT [750]; частный ИНТ [] snakeYlength = новый INT [750]; частный ИНТ lengthsnake = 3; частный ИНТ двигается = 0; частное булево влево = ложь; частное логическое право = ложь; частное логическое вверх = ложь; частное булево вниз = ложь; частный ImageIcon umouth; частный ImageIcon lmouth; частный ImageIcon rmouth; частный ImageIcon dmouth; частный орган ImageIcon; частный ImageIcon imagetitle; частный таймер т; частная задержка INT = 100; общественного Геймплей () {addKeyListener (это); setFocusable (истина); setFocusTraversalKeysEnabled (ложь); т = новый таймер (задержка, это); t.start (); } Пустот краска общественности (график г) {если (двигается == 0) {snakeXlength [2] = 50; snakeXlength [1] = 75; snakeXlength [0] = 100; snakeYlength [2] = 100; snakeYlength [1] = 100; snakeYlength [0] = 100; } // название границы г. SetColor (Color.black); g.drawRect (24, 10, 851, 55); // название imagetitle = новый ImageIcon (GetClass () getResource ( "title.jpg").); imagetitle.paintIcon (это, например, 25, 11); // игровая зона g.setColor (Color.black); g.drawRect (24, 74, 851, 577); // BG для игровой зоны g.setColor (Color.black); g.fillRect (25, 75, 850, 575); rmouth = новый ImageIcon (GetClass () getResource ( "rmouth.png").); // rmouth = новый ImageIcon ( "игра / rmouth.png"); rmouth.paintIcon (это, например, snakeXlength [0], snakeYlength [0]); для (INT = 0; а = 0; г -) {snakeYlength [г + 1] = snakeYlength [г]; } Для (INT R = lengthsnake; г> 0; г -) {если (г == 0) {snakeXlength [г] = snakeXlength [г] +25; } Еще {snakeXlength [г] = snakeXlength [г-1]; } Если (snakeXlength [г]> 850) {snakeXlength [г] = 25; }} Перекрашивать (); } Если (слева) {для (INT R = lengthsnake-1; г> = 0; г -) {snakeYlength [г + 1] = snakeYlength [г]; } Для (INT R = lengthsnake; г> 0; г -) {если (г == 0) {snakeXlength [г] = snakeXlength [г] -25; } Еще {snakeXlength [г] = snakeXlength [г-1]; } Если (snakeXlength [г] <25) {snakeXlength [г] = 850; }} Перекрашивать (); } Если (вверх) {для (INT R = lengthsnake-1; г> = 0; г -) {snakeXlength [г + 1] = snakeXlength [R]; } Для (INT R = lengthsnake; г> 0; г -) {если (г == 0) {snakeYlength [г] = snakeYlength [г] +25; } Еще {snakeYlength [г] = snakeYlength [г-1]; } Если (snakeYlength [г] <625) {snakeYlength [г] = 75; }} Перекрашивать (); } Если (вниз) {для (INT R = lengthsnake-1; г> = 0; г -) {snakeXlength [г + 1] = snakeXlength [R]; } Для (INT R = lengthsnake; г> 0; г -) {если (г == 0) {snakeYlength [г] = snakeYlength [г] +25; } Еще {snakeYlength [г] = snakeYlength [г-1]; } Если (snakeYlength [г]> 625) {snakeYlength [г] = 75; }} Перекрашивать (); }}} Я надеюсь, что вы сможете помочь мне с моей проблемой. Я не знаю, где я ошибаюсь. Змея двигается, но останавливается после 3 шагов, его еще изменяющегося направления головы, но только в этом положении. Это мой первый запрос здесь переполнение стека. Я надеюсь, что приведенные выше данные помогают понять проблему. Пожалуйста, помогите мне найти решение.
Anshul Sharma
1

голосов
1

ответ
21

Просмотры

Bind ручки JSlider на внешнее значение INT

Мой JSlider имеет iconScaleManager в качестве атрибута. IconScaleManager обладает Int, значение которого соответствует JSlider клещей. Это ИНТ модифицируется другим классом, в ActionListener, который добавляется на 2 JButtons. Цель: Я хотел бы ручку, чтобы двигаться, самостоятельно, к фактическому значению междунара который соответствует отметке клеща. Я думаю, мне нужно, чтобы связать значение или стрелять событие, но я не мог понять, как. И, конечно же, я добавил aChangeListener на JSlider: общественный класс SliderListener реализует ChangeListener {частное ИНТ sliderIndex = 0; частный IconScaleManager iconScaleManager = NULL; общественного SliderListener (интермедиат startingIndex, IconScaleManager визуализатор) {sliderIndex = startingIndex; iconScaleManager = рендерер; } @Override общественный недействительный StateChanged (ChangeEvent е) {источник JSlider = (JSlider) e.getSource (); sliderIndex = source.getValue (); iconScaleManager.scaleSlider (sliderIndex); }}
KaHinCostner
1

голосов
0

ответ
45

Просмотры

Качели перетащить изображение не работает на Linux

Я заметил, что с помощью setDragImage от сопротивления JList и падение поддержки работы на Windows 10 Professional x86, тогда как на Arch Linux 4.17.5 с XFCE нет. Видимое разница: Перетащите изображение на Windows, нет перетащить изображение на Linux Сначала я не подозревал, что это может быть проблемой из-за разные версии JDK: Oracle JDK на Windows, и OpenJDK на Linux, как версия 1.8.0_172. Но я получил те же результаты после перехода на Oracle JDK 1.8.0_172 на Arch Linux. При отладке с IntelliJ на Linux, я мог видеть, что сопротивление изображение создается просто отлично, как BufferedImage из элемента в JList, но призыв к setDragImage, кажется, не имеют никакого влияния на Linux. Следующий код, чтобы воспроизвести этот вопрос представляет собой модифицированную версию от ответа aterai здесь:. Импорт javax.swing *; импорт java.awt *. импорт java.awt.datatransfer.DataFlavor; импорт java.awt.datatransfer.StringSelection; импорт java.awt.datatransfer.Transferable; импорт java.awt.image.BufferedImage; импорт java.util.List; // Из https://stackoverflow.com/questions/11437402/setdragimage-not-working-java-7#11448623 общественного класса BasicDnd {частной статической силы createAndShowGUI () {JFrame е = новый JFrame ( "BasicDnD"); f.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); f.setContentPane (новый BasicDnd () makeUI ().); f.setSize (320, 320); f.setLocationRelativeTo (нуль); f.setVisible (истина); } государственной статической силы основных (String [] арг) {printJavaInfo (); EventQueue.invokeLater (BasicDnd :: createAndShowGUI); } Частных статических аннулируются printJavaInfo () {Package runtimePackage = Runtime.class.getPackage (); Строка specVendor = runtimePackage.getSpecificationVendor (); Строка implementationVendor = runtimePackage.getImplementationVendor (); Строка версия = runtimePackage.getImplementationVersion (); System.out.println ( "Спецификация поставщика:" + specVendor); System.out.println ( "Поставщик реализации:" + implementationVendor); System.out.println ( "версия JRE:" + версия); } Частная JList makeList () {DefaultListModel т = новый DefaultListModel (); m.addElement ( "Марта Вашингтон"); m.addElement ( "Абигейл Адамс"); m.addElement ( "Март Рэндольф"); Список JList = новый JList (м); list.setTransferHandler (новый TransferHandler () {частного конечной JPanel р = новые JPanel (); частный BufferedImage BufferedImage; частная ширина ИНТ, высота; (! Info.isDataFlavorSupported (DataFlavor.stringFlavor)) @Override общественного логический canImport (TransferHandler.TransferSupport информация) {если {вернуться ложным; } JList.DropLocation дл = (JList.DropLocation) info.getDropLocation (); вернуться dl.getIndex () = -1!; } @Override общественные INT getSourceActions (JComponent с) {BufferedImage IMG = makeImageFromString (с); если (IMG = NULL) {setDragImage (IMG); } Вернуть COPY; } Частная BufferedImage makeImageFromString (JComponent SRC) {JList л = (JList) SRC; INT IDX = l.getSelectedIndex (); Прямоугольник Rect = list.getCellBounds (IDX, IDX); если (Прямоугольник == NULL) возвращения нуль; если (BufferedImage == NULL || rect.width = ширина || rect.height = высота!) {ширина = rect.width; высота = rect.height; BufferedImage = новый BufferedImage (ширина, высота, BufferedImage.TYPE_INT_ARGB); } Компонент с = l.getCellRenderer () getListCellRendererComponent (л, l.getSelectedValue (), IDX, ложь, ложь). Графика г = bufferedImage.getGraphics (); g.clearRect (0, 0, ширина, высота); SwingUtilities.paintComponent (г, с, р, 0, 0, ширина, высота); g.dispose (); вернуться BufferedImage; } @Override защищен Переводной createTransferable (JComponent с) {JList список = (JList) с; Значения Список = list.getSelectedValuesList (); StringBuilder любитель = новый StringBuilder (); для (INT I = 0; г <values.size (); я ++) {Объект = Val values.get (я); buff.append (значение == NULL "": val.toString ()); если (! я = values.size () - 1) {buff.append ( "\ п"); }} Вернуть новый StringSelection (buff.toString ()); }}); list.setDropMode (DropMode.ON_OR_INSERT); list.setDragEnabled (истина); вернуться список; } Частная JComponent makeUI () {JPanel, панель = новый JPanel (новая GridLayout (2, 1)); JTextArea TEXTAREA = новый JTextArea ( "Перетащите сюда из JList!"); panel.add (новый JScrollPane (TEXTAREA)); panel.add (новый JScrollPane (makeList ())); вернуться панель; }} Как получить перетащить изображение на Linux?
Matthias Braun
1

голосов
0

ответ
45

Просмотры

Почему BeansBinding банки до сих пор не обновляется?

Почему широко распространена BeansBinding баночка версия еще beansbinding-1.2.1.jar? Его можно загрузить с Maven Central, или с распределениями Netbeans, или установлен плагин JFormDesigner. Почему он не содержит последние изменения, внесенные в 2008 году? Например, вопрос производительности с большим количеством переплетов был решен 10 лет назад (см GitHub JFormDesigner / свинг-beansbinding фиксации журнала с 2008 года). Одно обсуждение этого вопроса можно найти в BeansBinding Performance (выпуск 37). Раствор, чтобы удалить ненужные IGNORE_ALL_BEANINFO в Introspector.getBeanInfo () вызывает. Но beansbinding-1.2.1.jar, который широко распространен, по-прежнему имеет старый байт-код в нем. Что вызывает, что ошибка возникнет снова и снова?
oshatrk
1

голосов
1

ответ
44

Просмотры

Невозможно открыть второй JFileChooser

В моем приложении мне нужно открыть 2 JFileChooser в последовательности (чтобы выбрать исходные файлы и каталог назначения). Второй один просто не показывает ... Я сводились код к абсолютному минимуму, по-прежнему не работает: общественный класс FileChooserTest {государственной статической силы основных (String [] арг) {// Создание главного окна JFrame MainFrame = новый JFrame ( "Импорт изображений"); mainFrame.setSize (1000, 500); mainFrame.setVisible (истина); JFileChooser inputChooser = новый JFileChooser (); INT ReturnVal = inputChooser.showOpenDialog (мэйнфрейм); JFileChooser outputChooser = новый JFileChooser (); ReturnVal = outputChooser.showOpenDialog (мэйнфрейм); }} Приложение виснет в «showOpenDialog» призыв «outputChooser» ... Я использую JDK 1.8.0_181, NetBeans 8. 2, Mac OS X Mojave Beta. Любая идея, что происходит?
didole
1

голосов
2

ответ
23

Просмотры

Отображение изображения на JFrame

импорт javax.swing *. Тест общественного класса расширяет JFrame {государственной статической силы основных (String арг []) {JFrame кадр = новый JFrame (); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setVisible (истина); frame.setLocation (400, 100); frame.setTitle ( "привет мир"); ImageIcon IMG = новый ImageIcon (); . Img.getClass () getResource ( "/ тестирование / youlost.png"); Панель JPanel = новые JPanel (); JLabel этикетка = новый JLabel (IMG); panel.add (метка); panel.setVisible (истина); frame.pack (); }} Я бег этих кодов в затмении и кадр сделал выскакивает из-за frame.pack () и не дают какие-либо ошибок, но изображение не появляется. может кто-нибудь помочь мне с кодом?
xxboomxx
1

голосов
1

ответ
22

Просмотры

Добавить к JTextPane, перекрывающей линию для экономии места

У меня есть JTextPane с StyledDocument и нужно добавить изображение между текстом, который выше, чем шрифт. Это означает, что обычно линия становится выше: Что я и добиваюсь, чтобы иметь изображение слегка перекрывают друг друга, поэтому он использует меньше места. В MCVE я этого добиться, возвращая меньший вертикальный диапазон для IconView, который выглядит следующим образом: Так basicially он считает, что изображение является менее высоким, но рисует он полностью в любом случае. В основном, это работает, однако есть два вопроса, что: все еще только будет добавлено на вершине дополнительная высота, это может быть лучше, если она распределяется равномерно. Но что еще более важно, иногда нижняя часть не обращается, например, при прокрутке вверх и затем снова вниз: Вполне понятно, учитывая, что нижняя часть не очень, где изображение как ожидается, будет. Мой вопрос сейчас, есть лучше (меньше Hacky) способ предотвратить изображение от принятия так много места? Или, по крайней мере, способ исправить рисунок? Я уже вырыл вокруг кода немного, но я не уверен, что часть отвечает за определение того, что рисуется или как лучше изменить его, не портя что-нибудь еще до. импорт java.awt.BorderLayout; импорт java.awt.Color; импорт java.awt.Dimension; импорт java.awt.Graphics; импорт java.awt.image.BufferedImage; импорт java.util.logging.Level; импорт java.util.logging.Logger; импорт javax.swing.ImageIcon; импорт javax.swing.JFrame; импорт javax.swing.JScrollPane; импорт javax.swing.JTextPane; импорт javax.swing.SwingUtilities; импорт javax.swing.text.AbstractDocument; импорт javax.swing.text.BadLocationException; импорт javax.swing.text.BoxView; импорт javax.swing.text.ComponentView; импорт javax.swing.text.Element; импорт javax.swing.text.IconView; импорт javax.swing.text.LabelView; импорт javax.swing.text.ParagraphView; импорт javax.swing.text.SimpleAttributeSet; импорт javax.swing.text.StyleConstants; импорт javax.swing.text.StyledDocument; импорт javax.swing.text.StyledEditorKit; импорт javax.swing.text.View; импорт javax.swing.text.ViewFactory; общественного класса OverlappingImage {государственной статической силы основных (String [] арг) {SwingUtilities.invokeLater (() -> {createGui ();}); } Частной статической силы createGui () {JTextPane textPane = новый JTextPane (); textPane.setEditorKit (новый MyEditorKit ()); textPane.setEditable (ложь); textPane.setPreferredSize (новое измерение (320, 200)); StyledDocument док = textPane.getStyledDocument (); SimpleAttributeSet iconStyle = новый SimpleAttributeSet (); StyleConstants.setIcon (iconStyle, createImage ()); попробуйте {doc.insertString (doc.getLength (), TEST_TEXT + "\ п" + TEST_TEXT, нуль); doc.insertString (doc.getLength (), "Image", iconStyle); doc.insertString (doc.getLength (), TEST_TEXT, NULL); } Задвижка (BadLocationException ех) {Logger.getLogger (OverlappingImage.class.getName ()) журнал (Level.SEVERE, нулевой, ех). } Фрейм окно = новый JFrame (); window.add (новый JScrollPane (textPane), BorderLayout.CENTER); window.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); window.pack (); window.setLocationByPlatform (истина); window.setTitle ( "Тест"); window.setVisible (истина); } Статического класса MyEditorKit расширяет StyledEditorKit {личного окончательного ViewFactory завод; общественного MyEditorKit () {this.factory = новый StyledViewFactory (); } @Override общественного ViewFactory getViewFactory () {возвращение завода; } Статического класса StyledViewFactory реализует ViewFactory {@Override общественности Вид создание (Element эль) {Строка вида = elem.getName (); если (! вид = NULL) {если (kind.equals (AbstractDocument.ContentElementName)) {возвратить новый LabelView (эль); } Еще если (kind.equals (AbstractDocument.ParagraphElementName)) {возвратить новый ParagraphView (эль); } Еще если (kind.equals (AbstractDocument. SectionElementName)) {возвратить новый BoxView (эль, View.Y_AXIS); } Еще если (kind.equals (StyleConstants.ComponentElementName)) {возвратить новый ComponentView (эль); } Еще если (kind.equals (StyleConstants.IconElementName)) {возвратить новый MyIconView (эль); }} Вернуть новый LabelView (Эль); }}} Статический класса MyIconView расширяет IconView {общественного MyIconView (Element Эль) {супер (эль); } @Override общественного поплавок getPreferredSpan (интермедиат ось) {если (ось == View.Y_AXIS) {поплавок высота = super.getPreferredSpan (ось); вернуть высоту * 0.7f; } Вернуться супер. getPreferredSpan (ось); }} / ** * Создает пример изображения. * / Общественности статической ImageIcon createImage () {BufferedImage изображения = новый BufferedImage (28,28, BufferedImage.TYPE_INT_ARGB); Графика г = image.getGraphics (); g.setColor (Color.GREEN); g.fillRect (0, 0, 28, 28); g.setColor (Color.BLACK); g.drawRect (0, 0, 27, 27); g.dispose (); вернуть новый ImageIcon (изображение); } Частный статический окончательная Строка TEST_TEXT = "Lorem Ipsum боль сидеть Амет," + "consectetur adipisici Элиты, SED eiusmod Tempor incidunt ет" + "Лабор и др Dolore магна aliqua. Ut enim объявления минит veniam, QUIS" + «nostrud упражнения ullamco Laboris Ниси ут aliquid экс еа "+" commodi consequat. Quis Aut Е reprehenderit в юре voluptate "+" велит еззе cillum Dolore ес fugiat Nulla pariatur. Excepteur "+ "синт obcaecat cupiditat не proident, Сюнт в Culpa Qui officia" + "deserunt mollit Anim ID ЭСТа laborum";}.
user2375667
1

голосов
1

ответ
113

Просмотры

Как изменить цвет элемента в Java Swing?

У меня есть программа для визуализации взвешенной матрицы смежности в графу. Я хотел бы изменить цвет 2 узлов в одиночку. На этом графике, я хотел бы изменить цвет узла 1 и 2. Вот код: пакет graphvisualisation; импорт java.awt.Dimension; импорт java.util.Hashtable; импорт java.util.LinkedList; импорт javax.swing.JFrame; импорт org.apache.commons.collections15.Transformer; импорт edu.uci.ics.jung.algorithms.layout.CircleLayout; импорт edu.uci.ics.jung.graph.Graph; импорт edu.uci.ics.jung.graph.UndirectedSparseGraph; импорт edu.uci.ics.jung.graph.util.EdgeType; импорт edu.uci.ics.jung.visualization.BasicVisualizationServer; импорт java.awt.font; класс GraphVisualisation общественного {статические INT edgeCount_Directed = 0; // Это работает с внутренним MyEdge класса класса MyNode {// статические INT edgeCount = 0; // Это работает с идентификатором строки внутреннего класса MyEdge; общественного MyNode (String ID) {this.id = идентификатор; } Общественной Строки ToString () {возвращение "V" + идентификатор; } Строка Node_Property общественности () {Строка node_prop = ID; возвращать (node_prop); }} Класс MyLink {INT вес; Строка этикетки; ИНТ идентификатор; общественного MyLink (интермедиат вес) {this.id = edgeCount_Directed ++; this.weight = вес; } Общественного Строка ToString () {возвращение "E" + идентификатор; } Общественной Строки Link_Property () {Строка Link_prop = Этикетка; возвращать (Link_prop); } Строка Link_Property_wt общественности () {Строка Link_prop_wt = "" + вес; возвращать (Link_prop_wt); }} // используется для построения графа и граф вызовов алгоритма, используемого в JUNG общественного недействительный Visualize_Directed_Graph (LinkedList Distinct_nodes, LinkedList source_vertex, LinkedList target_vertex, LinkedList Edge_Weight) {// СОЗДАНИЯ взвешенный ориентированный граф График г = новый UndirectedSparseGraph (); // создает узел объекты Hashtable Graph_Nodes = новый Hashtable (); LinkedList Source_Node = новый LinkedList (); LinkedList Target_Node = новый LinkedList (); LinkedList Graph_Nodes_Only = новый LinkedList (); // LinkedList Graph_Links = новый LinkedList (); // создание графа узлов для (INT I = 0; я LinkedList Graph_Nodes_Only = новый LinkedList (); // LinkedList Graph_Links = новый LinkedList (); // создание графа узлов для (INT I = 0; я LinkedList Graph_Nodes_Only = новый LinkedList (); // LinkedList Graph_Links = новый LinkedList (); // создание графа узлов для (INT I = 0; я
1

голосов
0

ответ
39

Просмотры

Является Свинг Проводника для Eclipse (Luna) по-прежнему актуален?

Есть несколько других сообщений, связанных с свингом Explorer, но они старые и ссылки либо уже не работают или вас в каком-то отрывочных веб-сайте. Ведение результатов поиска Google в том же самом для свинга Explorer. Является Свинг Проводник плагин для Eclipse, по-прежнему актуальна или есть новый инструмент? Есть ли действительный загрузки сайта для Swing-проводника или последнего используемого инструмента (и любая сопутствующая документация)?
1

голосов
0

ответ
112

Просмотры

Java JTextPane игнорирует тег при использовании пользовательского HTMLEditorKit

В моем приложении я использую JTextPane встроенного в JScrollPane для отображения текста, который отформатирован с использованием HTML-тегов. Сначала я использовал JTextArea, но затем перешел на JTextPane, чтобы иметь возможность использовать HTML и цвет. Тогда я нуждался в JTextPane для поддержки обертывания на основе письма, а не только упаковок по умолчанию белого пространства. Другими словами, если содержание слишком долго она должна быть обернута и горизонтальная полоса прокрутки JScrollPane не должны быть видны. Поэтому я нашел решение в этом ответе, который работает отлично: https://stackoverflow.com/a/6330483/3871673. Он использует пользовательский HTMLEditorKit для JTextPane. Но при этом решении JTextPane игнорирует любые разрывы строк с HTML-тега. Я должен признать, я действительно не знаю, как код в растворе работает. Было бы замечательно, если бы кто-то мог узнать, как получить HTML новой строки тег работает с этим решением. Вот минимальный, полный и проверяемый пример:. Импорт javax.swing *; импорт javax.swing.text.Element; импорт javax.swing.text.ParagraphView; импорт javax.swing.text.View; импорт javax.swing.text.ViewFactory; импорт javax.swing.text.html.HTMLEditorKit; импорт javax.swing.text.html.InlineView; импорт java.awt *. общественного класса JTextPaneTest расширяет JFrame {государственной статической силы основных (String [] арг) {новый JTextPaneTest (); } Общественных JTextPaneTest () {setLayout (новый BorderLayout ()); JTextPane textPane = новый JTextPane (); textPane.setContentType ( "текст / html"); textPane.setEditorKit (новый HTMLEditorKitWrapSupport ()); // делает JTextPane игнорировать тег // Пример 1 (JTextPane игнорирует тег при использовании пользовательского HTMLEditorKit) textPane.setText ( "Линия 1 Линия 2"); // Пример 2 (текст должен быть обернут и горизонтальная полоса в JScrollPane не должна быть видна) //textPane.setText ( «LONGWORDWITHOUTSPACES_LONGWORDWITHOUTSPACES_LONGWORDWITHOUTSPACES_LONGWORDWITHOUTSPACES_LONGWORDWITHOUTSPACES_»); JScrollPane ScrollPane = новый JScrollPane (textPane); (добавить ScrollPane, BorderLayout.CENTER); SetSize (новое измерение (500, 500)); SetVisible (истина); } Класс HTMLEditorKitWrapSupport расширяет HTMLEditorKit {@Override общественного ViewFactory getViewFactory () {вернуть новый HTMLEditorKit. HTMLFactory () {общественности Вид создания (Element элемент) {Посмотреть вид = super.create (элемент); если (вид InstanceOf InlineView) {вернуть новый InlineView (элемент) {@Override общественной INT getBreakWeight (ось INT, плавать позы, плавать LEN) {вернуть GoodBreakWeight; } @Override общественности Просмотр breakView (интермедиат ось, внутр p0, поплавок поз, поплавок LEN) {если (ось == View.X_AXIS) {checkPainter (); INT р1 = getGlyphPainter () getBoundedPosition (это, р0, поз, длина). если (р0 == getStartOffset () && р1 == getEndOffset ()) {вернуть это; } Вернуть createFragment (P0, P1); } Это вернуть; }}; } Еще если (вид InstanceOf ParagraphView) {вернуть новый ParagraphView (элемент) {защищенные SizeRequirements calculateMinorAxisRequirements (INT ось, SizeRequirements sizeRequirements) {если (sizeRequirements == NULL) {sizeRequirements = новые SizeRequirements (); } Поплавковый прив = layoutPool.getPreferredSpan (ось); плавать мин = layoutPool.getMinimumSpan (ось); // Не включайте врезки, Box.getXXXSpan будет включать их. sizeRequirements.minimum = (целое) мин; sizeRequirements.preferred = Math.max (sizeRequirements.minimum, (INT) прив); sizeRequirements.maximum = Integer.MAX_VALUE; sizeRequirements.alignment = 0.5f; вернуться sizeRequirements; }}; } Вернуться вид; }}; }}} плавать мин = layoutPool.getMinimumSpan (ось); // Не включайте врезки, Box.getXXXSpan будет включать их. sizeRequirements.minimum = (целое) мин; sizeRequirements.preferred = Math.max (sizeRequirements.minimum, (INT) прив); sizeRequirements.maximum = Integer.MAX_VALUE; sizeRequirements.alignment = 0.5f; вернуться sizeRequirements; }}; } Вернуться вид; }}; }}} плавать мин = layoutPool.getMinimumSpan (ось); // Не включайте врезки, Box.getXXXSpan будет включать их. sizeRequirements.minimum = (целое) мин; sizeRequirements.preferred = Math.max (sizeRequirements.minimum, (INT) прив); sizeRequirements.maximum = Integer.MAX_VALUE; sizeRequirements.alignment = 0.5f; вернуться sizeRequirements; }}; } Вернуться вид; }}; }}} sizeRequirements.minimum = (целое) мин; sizeRequirements.preferred = Math.max (sizeRequirements.minimum, (INT) прив); sizeRequirements.maximum = Integer.MAX_VALUE; sizeRequirements.alignment = 0.5f; вернуться sizeRequirements; }}; } Вернуться вид; }}; }}} sizeRequirements.minimum = (целое) мин; sizeRequirements.preferred = Math.max (sizeRequirements.minimum, (INT) прив); sizeRequirements.maximum = Integer.MAX_VALUE; sizeRequirements.alignment = 0.5f; вернуться sizeRequirements; }}; } Вернуться вид; }}; }}} выравнивание = 0.5f; вернуться sizeRequirements; }}; } Вернуться вид; }}; }}} выравнивание = 0.5f; вернуться sizeRequirements; }}; } Вернуться вид; }}; }}}
trinity420
1

голосов
0

ответ
79

Просмотры

JavaFX выбора даты календаря держать открытым и выбрать несколько дней

Привет я новичок в JavaFX и хотел бы использовать выбор даты, в колебании я использовал JDate сборщика, который позволил мне использовать подборщик поля со списка (по аналогии с JavaFX один), однако, также позволь мне иметь открытый календарь, пользователь может выбрать один день или несколько (сдвиговые мыши) Как я получаю это на JavaFX?
Olivier Maxwell
1

голосов
1

ответ
25

Просмотры

Почему пользовательский компонент не отображается на JFrame?

Я создал пользовательский компонент InOutList который расширяет JComponent, и я хочу, чтобы добавить его в этот JFrame. Но это не отображается. Вот класс пользовательского компонента: импорт java.awt.Color; импорт java.awt.Dimension; импорт java.awt.GridBagConstraints; импорт java.awt.GridBagLayout; импорт javax.swing.JButton; импорт javax.swing.JComponent; импорт javax.swing.JLabel; импорт javax.swing.JPanel; InOutLists общественного класса расширяет JComponent {GridBagConstraints GBC = новые GridBagConstraints (); JPanel задней панели, р1; JLabel этикетки; JButton БТН; InOutLists () {setBackground (новый цвет (51, 102, 255)); setPreferredSize (новое измерение (100, 100)); = новая задняя панель JPanel (новый GridBagLayout ()); p1 = новый JPanel (); Этикетка = новый JLabel ( "Метка 1"); БТН = новый JButton ( "Назад"); p1.add (БТН); p1.add (метка); gbc.gridx = 0; gbc.gridy = 0; backPanel.add (p1, GBC); }} Вот основной класс: импорт java.awt.Dimension; импорт javax.swing.JFrame; импорт java.awt.BorderLayout; класс CCMain общественности расширяет JFrame {CCMain () {супер ( "Управление лиги"); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); SetSize (1080, 780); setPreferredSize (новое измерение (1080, 700)); setMaximumSize (новое измерение (1080, 780)); SetVisible (истина); InOutLists ИОЛ = новые InOutLists (); Добавить (ИОЛ, BorderLayout.CENTER); } Государственной статической силы основных (String [] арг) {новый CCMain (); }} импорт java.awt.Dimension; импорт javax.swing.JFrame; импорт java.awt.BorderLayout; класс CCMain общественности расширяет JFrame {CCMain () {супер ( "Управление лиги"); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); SetSize (1080, 780); setPreferredSize (новое измерение (1080, 700)); setMaximumSize (новое измерение (1080, 780)); SetVisible (истина); InOutLists ИОЛ = новые InOutLists (); Добавить (ИОЛ, BorderLayout.CENTER); } Государственной статической силы основных (String [] арг) {новый CCMain (); }} импорт java.awt.Dimension; импорт javax.swing.JFrame; импорт java.awt.BorderLayout; класс CCMain общественности расширяет JFrame {CCMain () {супер ( "Управление лиги"); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); SetSize (1080, 780); setPreferredSize (новое измерение (1080, 700)); setMaximumSize (новое измерение (1080, 780)); SetVisible (истина); InOutLists ИОЛ = новые InOutLists (); Добавить (ИОЛ, BorderLayout.CENTER); } Государственной статической силы основных (String [] арг) {новый CCMain (); }} 700)); setMaximumSize (новое измерение (1080, 780)); SetVisible (истина); InOutLists ИОЛ = новые InOutLists (); Добавить (ИОЛ, BorderLayout.CENTER); } Государственной статической силы основных (String [] арг) {новый CCMain (); }} 700)); setMaximumSize (новое измерение (1080, 780)); SetVisible (истина); InOutLists ИОЛ = новые InOutLists (); Добавить (ИОЛ, BorderLayout.CENTER); } Государственной статической силы основных (String [] арг) {новый CCMain (); }}
rjp
1

голосов
0

ответ
45

Просмотры

Качели UIManager не работает для JCheckBox HTML текста

Я использую Java 8 и пытаюсь изменить по умолчанию Выключен серого цвета, чтобы быть немного темнее. Ниже приведен фрагмент кода. JCheckBox chckbxGraph = новый JCheckBox ( "График"); JCheckBox chckbxTable = новый JCheckBox ( "Таблица"); chckbxGraph.setEnabled (ложь); chckbxTable.setEnabled (ложь); UIManager.put ( "CheckBox.disabledText", Color.DARK_GRAY); chckbxGraph.updateUI (); chckbxTable.updateUI (); Только флажок с открытым текстом меняется на темно-серый. Является ли это ошибка в свинге?
jprism
1

голосов
1

ответ
39

Просмотры

Как создать компоненты JLabel (или другие элементы) без повторения кода?

Я искал какое-то время и не мог найти ничего об этом. Скажем, например, я бы создать много JLabels, но вместо того, чтобы перепечатывать все для каждого JLabel, я мог бы иметь метод, который позволил бы мне вводить то, что я хотел, и иметь его создать их для меня. Как бы я идти о делать это? У меня есть небольшой пример того, что я имею в виду ниже. частные JLabel LabelBuilder (JLabel метка, строка текста, внутр х, у ИНТ, ширина INT, INT высота) {метка = новый JLabel (текст); label.setBounds (х, у, ширина, высота); label.setOpaque (истина); label.setBackground (Color.white); label.setHorizontalAlignment (SwingConstants.CENTER); window.add (метка); } Общественного недействительными SetupElements () {LabelBuilder (Метка_строки, "Текст", 10, 10, 200, 20); } Как бы идти о возвращении его? Есть ли более эффективный способ, чем это? Заранее спасибо!
AshtonMemer
1

голосов
1

ответ
122

Просмотры

приложение JavaFX не закрывается с содержанием свинга

Я пытаюсь добавить Свинг компонент для приложения JavaFX. Я создаю объект SwingNode с JButton, но не добавить этот элемент к основной сцене. После закрытия основного этапа, пребывание приложения работает. Что мне нужно сделать, чтобы исправить это? Пример здесь: открытый класс SwingFx расширяет Application {@Override общественного недействительный запуск (этап Stage) {конечной SwingNode swingNode = новый SwingNode (); createAndSetSwingContent (swingNode); AnchorPane pane1 = новый AnchorPane (); AnchorPane pane2 = новый AnchorPane (); . Pane1.getChildren () добавить (swingNode); stage.setScene (новая сцена (pane2, 100, 50)); stage.show (); } Частная пустота createAndSetSwingContent (конечная SwingNode swingNode) {SwingUtilities.invokeLater (новый Runnable () {@Override общественный недействительный запуск () {swingNode. setContent (новый JButton ( "Нажми меня!")); }}); } государственной статической силы основных (String [] агдз) {запуск (арг); }}
Dmitriy Maykov

Просмотр дополнительных вопросов