<plugins>
<!--Настройка компиляции проекта-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!--Копирование зависимотей в папку lib/-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<configuration>
<!--Все зависимости которые нужны для работы твоего приложения будут лежать здесь-->
<outputDirectory>${project.build.directory}/lib/</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<!--Если надо конфигурировать манифест, то здесь-->
<manifest>
<addClasspath>true</addClasspath>
<!--путь к зависимостям относительно запускаемого jar файла-->
<!--ВСЕ ЗАВИСИМОСТИ ДОЛЖНЫ БУДУТ ПОСТАВЛЯТЬСЯ С ТВОИМ jar приложением. -->
<classpathPrefix>lib/</classpathPrefix>
<classpathLayoutType>simple</classpathLayoutType>
<mainClass>main.Main</mainClass>
</manifest>
<!--<manifestEntries>-->
<!--<Rsrc-Class-Path>${}</Rsrc-Class-Path>-->
<!--</manifestEntries>-->
</archive>
</configuration>
</plugin>
</plugins>
if (contact == null){
lblName.setText(contact.getName());
lblSense.setText(contact.getSense());
}
if ( empty||contact == null){
setText(null);
setGraphic(null);
}
long res = dim.readLong();
System.out.println("res "+res);
//здесь ты приводишь long к int, и может произойти переполнение,
// и размерность массива будет отрицательной. Из-за этого вылетает эксепшн
byte[] byteArray = new byte[(int) res + 1];
File file = new File(basePath + "\\"+fileName);
//вот здесь ты обрезал получаемою длину файла, и от потока требуешь в будущем прочитать данные в этот массив
//но читаешь ты только кусок
//опять же здесь ты можешь снова получить отрицательное значение размерности массива
byte[] byteArray = new byte[(int) file.length()];
//и во второй раз ты передаешь длину ОБРЕЗАННОГО МАССИВА который в реальности смог прочитать здесь
bufferedInputStream.read(byteArray, 0, byteArray.length); // copied
ActionListener l = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//кнопка которая была нажата
JButton button = (JButton) e.getSource();
//идентификатор действия - предпочтительно использовать его
//естественно при создании кнопки необходимо установить этот идентификатор
String actionCommand = button.getActionCommand();
//или даже без кнопки можно
String actionCommand1 = e.getActionCommand();
//среднячковый вариант
String name = button.getName();
//крайний и отвратительный вариант
String text = button.getText();
}
};
JFrame fr = new JFrame();
//устанавливаем абсолюбтное позиционирование на фрейме
fr.setLayout(null);
fr.setSize(500,500);
Main m = new Main();
//устанавливаем размеры и координаты компонента для размещения в родителя с абсолютным позиционированием
m.setBounds(0,0,500,500);
fr.add(m);
//обязательная вещь, говорит о том что когда ты закроешь окно - и приложение тоже должно закрыться, если этого не сделать, то после закрытия окна приложение продолжит работу и будет висеть в памяти
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setVisible(true);
class Cat{
public int eatBeaf(int weight){
//тут описываем съедение
return result; //результат - продукт переработки котлет
}
}
class Dog{
public int eatBeaf(int weight){
//тут описываем съедение
return result; //результат - продукт переработки котлет
}
}
class GrandMa{
public void feedCat(Cat cat){}
public void feedDog(Dog dog){}
}
interface BeafEater{
int eatBeaf(int weight);
}
//и скажем что и кот и пес - пожиратели котлет и они умеют их есть
class Cat implements BeafEater{
public int eatBeaf(int weight){
//тут описываем съедение
return result; //результат - продукт переработки котлет
}
}
class Dog implements BeafEater{
public int eatBeaf(int weight){
//тут описываем съедение
return result; //результат - продукт переработки котлет
}
}
class GrandMa{
public void feedBeafEater(BeafEater BeafEater){
int weightBeaf = 5;
int shit = beafEater.eatBeaf(weightBeaf ); //кормим поедателя котлет, колучаем какахи
cleanToilet(shit ); //бабушка убирает какахи
}
}
public static void main(String[] args){
GrandMa grandMa = new GrandMa();
Cat cat = new Cat();
Dog dog = new Dog;
//напоминаю и кот и пес - рассматриваются бабушкой как пожиратели котлет, ей важно чтобы они поодерживали определенный интерфейс (умели делать определенные вещи)
grandMa.feedBeafEater(cat);
grandMa.feedBeafEater(dog);
}