UDP быстрее, чем TCP, и простая причина состоит в том, потому что ее несуществующие подтверждают пакет (ACK), который разрешает непрерывный поток пакетов вместо TCP, который подтверждает ряд пакетов, вычисленных при помощи размера окна TCP и круговая задержка (RTT).
Для получения дополнительной информации я рекомендую простое, но очень понятный объяснение Skullbox (TCP по сравнению с UDP)
Метод setDividerLocation (double) работает только с «реализованным» фреймом, то есть после того, как вы упаковали или сделали фрейм видимым.
Можно использовать метод setDividerLocation (int) в любое время.
Если вы довольны тем, что разделитель перемещается в середину каждый раз, когда вы изменяете размер панели, вы можете добавить ComponentListener и иметь его метод componentResized для вызова setDividerLocation (0.5).
это исправляет:
public class JSplitPane3 extends JSplitPane {
private boolean hasProportionalLocation = false;
private double proportionalLocation = 0.5;
private boolean isPainted = false;
public void setDividerLocation(double proportionalLocation) {
if (!isPainted) {
hasProportionalLocation = true;
this.proportionalLocation = proportionalLocation;
} else {
super.setDividerLocation(proportionalLocation);
}
}
public void paint(Graphics g) {
super.paint(g);
if (!isPainted) {
if (hasProportionalLocation) {
super.setDividerLocation(proportionalLocation);
}
isPainted = true;
}
}
}