Меню

Java как получить рабочий стол



Javist

Свежие записи

Как создать виртуальный рабочий стол в Вашей Applic

Этот совет Java Swing иллюстрирует способ использования фона вашего приложения в качестве виртуального рабочего стола. Этот код использует JDesktopPane которая представляет собой контейнер (обычно для JInternalFrames), который имитирует рабочий стол. Как правило, пользователю будет создавать JInternalFrames и поместите их в JDesktopPane. Затем пользователь может взаимодействовать с JInternalFrames как обычно они бы с JFrames. Действия (свернуть, развернуть, закрывать и т.д.) осуществляются с помощью DesktopManager, что связано с JDesktopPane.

import javax.swing.*;

public class DesktopTest extends JFrame <

super ( «Using a JDesktopPane» ) ;

JMenuBar bar = new JMenuBar () ;

JMenu addMenu = new JMenu ( «Add» ) ;

JMenuItem newFrame = new JMenuItem ( «Internal Frame» ) ;

final JDesktopPane theDesktop = new JDesktopPane () ;

getContentPane () .add ( theDesktop ) ;

public void actionPerformed ( ActionEvent e ) <

true, true, true, true ) ;

Container c = frame.getContentPane () ;

MyJPanel panel = new MyJPanel () ;

c.add ( panel, BorderLayout.CENTER ) ;

setSize ( 500 , 400 ) ;

public static void main ( String args [] )

DesktopTest app = new DesktopTest () ;

public void windowClosing ( WindowEvent e )

class MyJPanel extends JPanel <

private ImageIcon imgIcon;

imgIcon = new ImageIcon ( «java-tip.gif» ) ;

public void paintComponent ( Graphics g )

imgIcon.paintIcon ( this, g, 0 , 0 ) ;

public Dimension getImageWidthHeight ()

Источник

Создать файл на рабочем столе: проблема с указанием пути

Не получается создать файл на рабочем столе
После проб разных граф. оболочек в Unity полетел рабочий стол — иконки папок и файлов не.

Как создать файл на рабочем столе?
каким образом? Добавлено через 3 минуты как просто создать файл я знаю, а вот как именно на.

Программы не запускаются на рабочем столе, ко всем ярлыкам на рабочем столе добавляется приставка .Ink
Помогите пожалуйста, использовал рекомендованную вами программу CureIT (нашел 18 вредоносных.

Проблема на рабочем столе
Подскажите,стоит Windows 7-32,с железом все нормально,драйвера все стоят.Иногда рабочий стол.

kirawa, каким образом так получилось? папка с рабочим столом должна быть внутри директории пользователя!

Добавлено через 3 часа 55 минут
kirawa, попробуй такой вариант

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Проблема с ярлыками на рабочем столе
Уже сталкивался с такой проблемой раньше, но не смог решить. Вот теперь опять всплыла. .

Как скопировать все *.jpg файлы с рабочего стола в папку на рабочем столе, не зная имени пользователя в пути?
Как скопировать все *.jpg файлы с рабочего стола в папку на рабочем столе, не зная имени.

Проблема связанная с указанием пути сохранения
Суть проблемы, в программе осуществлён экспорт данных в эксель, и прописан сразу путь сохранения к.

Файл на рабочем столе 🙂
Пытаюсь создать файл на рабочем столе, прежде проверяю есть ли он там 🙂 необходимые функции bool.

Источник

Как получить текущий рабочий каталог в Java?

Допустим, у меня есть основной класс в C:\Users\Justian\Documents\ . Как я могу заставить свою программу показать, что она находится в C:\Users\Justian\Documents ?

Жесткое кодирование — не вариант, его нужно адаптировать, если оно перемещено в другое место.

Я хочу поместить кучу файлов CSV в папку, заставить программу распознавать все файлы, затем загружать данные и манипулировать ими. Я действительно хочу знать, как перейти к этой папке.

8 ответов

Одним из способов будет использование системное свойство System.getProperty(«user.dir»); это даст вам« Текущий рабочий каталог, когда свойства были инициализированы » , Это, вероятно, то, что вы хотите. чтобы узнать, где была введена команда java , в вашем случае, в каталоге с файлами для обработки, даже если сам файл .jar может проживать где-то еще на машине. Наличие каталога фактического файла .jar в большинстве случаев не очень полезно.

Следующая команда распечатает текущий каталог, из которого была вызвана команда, независимо от того, где находится файл .class или .jar, в котором находится файл .class.

если вы находитесь в /User/me/ и ваш файл .jar, содержащий указанный выше код, находится в /opt/some/nested/dir/ команда java -jar /opt/some/nested/dir/test.jar Test выведет current dir = /User/me .

В качестве бонуса вы также должны рассмотреть возможность использования хорошего объектно-ориентированного парсера аргументов командной строки. Я настоятельно рекомендую JSAP , анализатор простых аргументов Java. Это позволит вам использовать System.getProperty(«user.dir») и, в качестве альтернативы, передать что-то еще, чтобы переопределить поведение. Гораздо более приемлемое решение. Это сделает передачу в каталог для обработки очень простой, и вы сможете использовать user.dir , если ничего не было передано.

Используйте CodeSource#getLocation() . Это прекрасно работает и в JAR-файлах. Вы можете получить CodeSource с помощью ProtectionDomain#getCodeSource() и ProtectionDomain в свою очередь можно получить с помощью Class#getProtectionDomain() .

Обновить в соответствии с комментарием ФП:

Я хочу поместить кучу файлов CSV в папку, заставить программу распознавать все файлы, затем загружать данные и манипулировать ими. Я действительно хочу знать, как перейти к этой папке.

Это потребует жесткого кодирования /знания их относительного пути в вашей программе. Скорее рассмотрите добавление его пути к пути к классу, чтобы вы могли использовать ClassLoader#getResource()

Или передать его путь в качестве аргумента main() .

Источник

Как получить рабочий стол в java

Я думаю, что это будет работать только на установке Windows на английском языке:

Как я могу сделать эту работу для неанглийских Windows?

9 ответы

Я использую французскую версию Windows и с ней инструкция:

отлично работает для меня.

Я думаю, что это тот же вопрос . но я не уверен !:

Читая его, я бы ожидал, что это решение вернет user.home, но, по-видимому, нет, и ссылка в ответе ответит так. Не пробовал сам.

Я предполагаю, что с помощью JFileChooser для решения потребуется не-headless JVM, но вы, вероятно, используете один из них.

Это только для Windows. Запустите REG.EXE и запишите его вывод:

или вы можете использовать JNA ( полный пример здесь )

Самое простое решение — узнать имя машины, так как это имя изменяется только по пути к папке «Рабочий стол». Поэтому, если вы можете найти это, вы нашли путь к Desktop. Следующий код должен сделать трюк — он сделал для меня 🙂

Ваша косая черта неправильная. Вы должны использовать его так.

  1. вы используете неправильную косую черту. для окон это \ not / .
  2. Я использую RandomAccesFile и File для управления fles и папками, и для разделения имени папок требуется двойная слэш ( \\ ).

Кажется не так просто .

But you could try to find an anwser browsing the code of some open-source projects, e.g. on Koders. I guess all the solutions boil down to checking the HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop path in the Windows registry. And probably are Windows-specific.

Если вам нужно более общее решение, я бы попытался найти приложение с открытым исходным кодом, которое, как вы знаете, работает правильно на разных платформах и помещает некоторые значки на рабочий стол пользователя.

Источник

Заметки программиста

Блог, посвященный программированию и сисадминистрированию

воскресенье, 13 мая 2012 г.

Как в java поместить фрейм (JFrame) в центре экрана

Основной сложностью при помещении фрейма в центр экрана является получение значения текущего разрешения экрана. Получить разрешение экрана в java можно используя класс java.awt.Toolkit вызвав метод java.awt.Toolkit.getDefaultToolkit().getScreenSize().
Он возвратит значение разрешения экрана в виде объекта класса Dimension.
Дальше необходимо просто вычислить координаты, куда следует поместить фрейм.
Пример:

UPD (из комментария Tom-Trix): Есть более простой способ помещения фрейма в центр экрана — использование метода frame.setLocationRelativeTo(null). Однако следует учитывать, что данный метод будет работать только при использовании java версии выше 1.4 (первый способ работает и на более ранних версиях java). Пример :
Важно: вышеописанные методы следует вызывать после установки размера фрейма (вызова методов setSize(), setPrefferedSize() и т.д.), а также желательно после добавления всех необходимых компонентов на фрейм, иначе эти методы просто не сработают или сработают не так, как ожидалось. Также скорее всего они могут не совсем корректно работать для среды с несколькими мониторами (не проверял).

5 комментариев:

Интересно.. спасибо, не знал

Не работает ваш способ. Ява 1.7. Форма выводится в правом нижнем углу.

UPD: Проблема в том, что таким способом не правильно вычисляется центр экрана если в системе два и более монитора!
То есть какие то костыли нужны, возможно это баг явы.

с несколькими мониторами работает нормально. но только фрейм выводится на первом мониторе.(на котором меню пуск)

Источник

Создание виджетов для рабочего стола на java

Можно создать какой-нибудь виджет/плазмоид для рабочего стола на Java? Если кто знает как, поделитесь какими-нибудь ссылками.

можно, но не нужно

Кому-то нужно, а кому-то не нужно. Вопрос был не в этом.

и можешь заниматься извращениями сколько хочешь, но не нужно

Мусье знает толк в разврате.

Спасибо, А более извращенские способы есть? А то этот какой-то неинтересный

Если что-то можно сделать не на яве, сделай это не на яве.

А если можно не делать, то лучше не делать и т.д. и в конце: а если можно не жить, то лучше не жить

Ты всё правильно понял. За исключением того, что если можно не убиваться, то лучше не убиваться.

быть может, с JavaFX такое возможно.

Но я тоже не рекомендую. У меня программа на джаве в трее висит, просто маршрутизирует письма. Жрёт 200МБ памяти при этом. Сдаётся мне, с твоим апплетом будет то же самое.

А чтобы совсем уже круто получилось, сделай виджет через JNI на Qt!

Напиши сначала целый десктоп в shared JVM, чтобы не дублировать в памяти одно и то же и лучше управлять памятью, а потом пиши себе плазмоид на Java, будет летать и память не жрать. OSHI, ведь есть андроид

Зачем вообще тогда нужна эта java, если элементарных и полезных в хозяйстве вещей на ней не сделать.

Источник

Files, Path

Paths

getFileName() — возвращает имя файла из пути;

getParent() — возвращает «родительскую» директорию по отношению к текущему пути (то есть ту директорию, которая находится выше по дереву каталогов);

getRoot() — возвращает «корневую» директорию; то есть ту, которая находится на вершине дерева каталогов;

startsWith() , endsWith() — проверяют, начинается/заканчивается ли путь с переданного пути:

Вывод в консоль:

testFile.txt
C:\Users\Username\Desktop
C:\
true
false

Обрати внимание на то, как работает метод endsWith() . Он проверяет, заканчивается ли текущий путь на переданный путь. Именно на путь, а не на набор символов.

Сравни результаты этих двух вызовов:

Вывод в консоль:

false
true

В метод endsWith() нужно передавать именно полноценный путь, а не просто набор символов: в противном случае результатом всегда будет false, даже если текущий путь действительно заканчивается такой последовательностью символов (как в случае с “estFile.txt” в примере выше).

Кроме того, в Path есть группа методов, которая упрощает работу с абсолютными (полными) и относительными путями.

boolean isAbsolute() — возвращает true, если текущий путь является абсолютным:

Вывод в консоль:

Path normalize() — «нормализует» текущий путь, удаляя из него ненужные элементы. Ты, возможно, знаешь, что в популярных операционных системах при обозначении путей часто используются символы “.” (“текущая директория”) и “..” (родительская директория). Например: “./Pictures/dog.jpg” обозначает, что в той директории, в которой мы сейчас находимся, есть папка Pictures, а в ней — файл “dog.jpg”

Так вот. Если в твоей программе появился путь, использующий “.” или “..”, метод normalize() позволит удалить их и получить путь, в котором они не будут содержаться:

Вывод в консоль:

C:\Users\Java\examples
C:\Users\examples

Path relativize() — вычисляет относительный путь между текущим и переданным путем.

Вывод в консоль:

Username\Desktop\testFile.txt

Полный список методов Path довольно велик. Найти их все ты сможешь в документации Oracle. Мы же перейдем к рассмотрению Files .

Files

С помощью метода filter() отбираем только те строки из файла, которые начинаются с «Как».

Проходимся по всем отобранным строкам с помощью метода map() и приводим каждую из них к UPPER CASE.

Объединяем все получившиеся строки в List с помощью метода collect() .

preVisitDirectory() — логика, которую надо выполнять перед входом в папку;

visitFileFailed() — что делать, если вход в файл невозможен (нет доступа, или другие причины);

postVisitDirectory() — логика, которую надо выполнять после захода в папку.

У нас такой логики нет, поэтому мы наследуемся от более простой версии. Логика внутри метода visitFile() довольно проста: прочитать все строки из файла, проверить, есть ли в них нужное нам содержимое, и если есть — вывести абсолютный путь в консоль. Единственная строка, которая может вызвать у тебя затруднение — вот эта: На деле все просто. Здесь мы просто описываем что должна делать программа после того, как выполнен вход в файл, и все необходимые операции совершены. В нашем случае необходимо продолжать обход дерева, поэтому мы выбираем вариант CONTINUE . Но у нас, например, могла быть и другая задача: найти не все файлы, которые содержат «This is the file we need», а только один такой файл. После этого работу программы нужно завершить. В этом случае наш код выглядел бы точно так же, но возвращаемым значением было бы: Что ж, давай запустим наш код и посмотрим, работает ли он. Вывод в консоль: Нужный файл обнаружен! C:\Users\Username\Desktop\testFolder\FileWeNeed1.txt Нужный файл обнаружен! C:\Users\Username\Desktop\testFolder\level1-a\level2-a-a\FileWeNeed2.txt Нужный файл обнаружен! C:\Users\Username\Desktop\testFolder\level1-b\level2-b-b\FileWeNeed3.txt Отлично, у нас все получилось! 🙂 Если тебе хочется узнать больше о walkFileTree() , рекомендую тебе вот эту статью. Также ты можешь выполнить небольшое задание — заменить SimpleFileVisitor на обычный FileVisitor , реализовать все 4 метода и придумать предназначение для этой программы. Например, можно написать программу, которая будет логировать все свои действия: выводить в консоль название файла или папки до/после входа в них. На этом все — до встречи! 🙂

Источник

Читайте также:  Как отучить щенка есть со стола
Adblock
detector